[INFO] cloning repository https://github.com/tangzhangming/qlang
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/tangzhangming/qlang" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftangzhangming%2Fqlang", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftangzhangming%2Fqlang'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 07bd403e97f71e4dbcd0c1879e6679e348e75547
[INFO] checking tangzhangming/qlang against try#a611f2a14e38407ec6717a86a01424ee6fc80762 for pr-154992
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftangzhangming%2Fqlang" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/tangzhangming/qlang
[INFO] finished tweaking git repo https://github.com/tangzhangming/qlang
[INFO] tweaked toml for git repo https://github.com/tangzhangming/qlang written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/tangzhangming/qlang on toolchain a611f2a14e38407ec6717a86a01424ee6fc80762
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a611f2a14e38407ec6717a86a01424ee6fc80762" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/tangzhangming/qlang already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a611f2a14e38407ec6717a86a01424ee6fc80762" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] checking tangzhangming/qlang against try#a611f2a14e38407ec6717a86a01424ee6fc80762 for pr-154992
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftangzhangming%2Fqlang" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/tangzhangming/qlang
[INFO] finished tweaking git repo https://github.com/tangzhangming/qlang
[INFO] tweaked toml for git repo https://github.com/tangzhangming/qlang written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/tangzhangming/qlang on toolchain a611f2a14e38407ec6717a86a01424ee6fc80762
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a611f2a14e38407ec6717a86a01424ee6fc80762" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/tangzhangming/qlang already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a611f2a14e38407ec6717a86a01424ee6fc80762" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+a611f2a14e38407ec6717a86a01424ee6fc80762" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 614101b552d6446f4785efe5aa7c03c5c27f0fcf611402753e2d747564b6a6df
[INFO] running `Command { std: "docker" "start" "-a" "614101b552d6446f4785efe5aa7c03c5c27f0fcf611402753e2d747564b6a6df", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "614101b552d6446f4785efe5aa7c03c5c27f0fcf611402753e2d747564b6a6df", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "614101b552d6446f4785efe5aa7c03c5c27f0fcf611402753e2d747564b6a6df", kill_on_drop: false }`
[INFO] [stdout] 614101b552d6446f4785efe5aa7c03c5c27f0fcf611402753e2d747564b6a6df
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+a611f2a14e38407ec6717a86a01424ee6fc80762" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9def23565bcc070a577f164a470d39e78323bdc8021933ec2d9396dc48c88fff
[INFO] running `Command { std: "docker" "start" "-a" "9def23565bcc070a577f164a470d39e78323bdc8021933ec2d9396dc48c88fff", kill_on_drop: false }`
[INFO] [stderr]     Checking crossbeam-channel v0.5.15
[INFO] [stderr]     Checking crossbeam-queue v0.3.12
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]     Checking dashmap v5.5.3
[INFO] [stderr]     Checking crossbeam v0.8.4
[INFO] [stderr]     Checking mylang v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `super::ast::TypeParam`
[INFO] [stdout]    --> src/parser/parser.rs:897:13
[INFO] [stdout]     |
[INFO] [stdout] 897 |         use super::ast::TypeParam;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::TypeBound`
[INFO] [stdout]    --> src/parser/parser.rs:898:13
[INFO] [stdout]     |
[INFO] [stdout] 898 |         use crate::types::TypeBound;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::TypeBound`
[INFO] [stdout]    --> src/parser/parser.rs:946:13
[INFO] [stdout]     |
[INFO] [stdout] 946 |         use crate::types::TypeBound;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::TypeBound`
[INFO] [stdout]    --> src/parser/parser.rs:978:13
[INFO] [stdout]     |
[INFO] [stdout] 978 |         use crate::types::TypeBound;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::ast::WhereClause`
[INFO] [stdout]     --> src/parser/parser.rs:1020:13
[INFO] [stdout]      |
[INFO] [stdout] 1020 |         use super::ast::WhereClause;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parking_lot::Mutex`
[INFO] [stdout]  --> src/compiler/codegen.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use parking_lot::Mutex;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AtomicUsize`
[INFO] [stdout]   --> src/vm/vm.rs:11:37
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::sync::atomic::{AtomicBool, AtomicUsize};
[INFO] [stdout]    |                                     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ChannelState` and `WaitGroupState`
[INFO] [stdout]     --> src/vm/vm.rs:4222:40
[INFO] [stdout]      |
[INFO] [stdout] 4222 |                     use super::value::{ChannelState, WaitGroupState};
[INFO] [stdout]      |                                        ^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::atomic::Ordering`
[INFO] [stdout]     --> src/vm/vm.rs:4223:25
[INFO] [stdout]      |
[INFO] [stdout] 4223 |                     use std::sync::atomic::Ordering;
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `select`
[INFO] [stdout]     --> src/vm/vm.rs:4548:45
[INFO] [stdout]      |
[INFO] [stdout] 4548 |                     use crossbeam_channel::{select, Sender, Receiver};
[INFO] [stdout]      |                                             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CallbackResponse`
[INFO] [stdout]     --> src/vm/vm.rs:6612:46
[INFO] [stdout]      |
[INFO] [stdout] 6612 |         use crate::stdlib::{CallbackRequest, CallbackResponse};
[INFO] [stdout]      |                                              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HeapObject`
[INFO] [stdout]   --> src/vm/gc.rs:10:36
[INFO] [stdout]    |
[INFO] [stdout] 10 | use super::value::{Value, HeapTag, HeapObject};
[INFO] [stdout]    |                                    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RuntimeTypeInfo`, `TraitVTable`, `VTableRegistry`, and `VTable`
[INFO] [stdout]   --> src/vm/mod.rs:12:18
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use vtable::{VTable, VTableRegistry, TraitVTable, RuntimeTypeInfo};
[INFO] [stdout]    |                  ^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ConcurrentMarkGc`, `GcResult`, `GcStats`, `Heap`, `MarkSweepGc`, `gc_register`, `gc_should_run`, `gc_stats`, and `get_heap`
[INFO] [stdout]   --> src/vm/mod.rs:13:14
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use gc::{Heap, MarkSweepGc, ConcurrentMarkGc, GcResult, GcStats, get_heap, gc_register, gc_should_run, gc_stats};
[INFO] [stdout]    |              ^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/package/resolver.rs:6:17
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ResolvedImport`
[INFO] [stdout]  --> src/package/mod.rs:9:37
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use resolver::{PackageResolver, ResolvedImport, ImportKind};
[INFO] [stdout]   |                                     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::ast::TypeParam`
[INFO] [stdout]    --> src/parser/parser.rs:897:13
[INFO] [stdout]     |
[INFO] [stdout] 897 |         use super::ast::TypeParam;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::vm::value::Value`
[INFO] [stdout]   --> src/stdlib/net/tcp.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |     use crate::vm::value::Value;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::TypeBound`
[INFO] [stdout]    --> src/parser/parser.rs:898:13
[INFO] [stdout]     |
[INFO] [stdout] 898 |         use crate::types::TypeBound;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/stdlib/net/tcp.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |     use std::sync::Arc;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::TypeBound`
[INFO] [stdout]    --> src/parser/parser.rs:946:13
[INFO] [stdout]     |
[INFO] [stdout] 946 |         use crate::types::TypeBound;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parking_lot::Mutex`
[INFO] [stdout]   --> src/stdlib/net/tcp.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     use parking_lot::Mutex;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::TypeBound`
[INFO] [stdout]    --> src/parser/parser.rs:978:13
[INFO] [stdout]     |
[INFO] [stdout] 978 |         use crate::types::TypeBound;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::ast::WhereClause`
[INFO] [stdout]     --> src/parser/parser.rs:1020:13
[INFO] [stdout]      |
[INFO] [stdout] 1020 |         use super::ast::WhereClause;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::vm::value::Value`
[INFO] [stdout]   --> src/stdlib/net/mod.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 89 |         use crate::vm::value::Value;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/stdlib/net/mod.rs:90:13
[INFO] [stdout]    |
[INFO] [stdout] 90 |         use std::sync::Arc;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parking_lot::Mutex`
[INFO] [stdout]   --> src/stdlib/net/mod.rs:91:13
[INFO] [stdout]    |
[INFO] [stdout] 91 |         use parking_lot::Mutex;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `THROWABLE_TYPES` and `is_throwable_type`
[INFO] [stdout]   --> src/stdlib/mod.rs:11:21
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use exception::{THROWABLE_TYPES, is_throwable_type};
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parking_lot::Mutex`
[INFO] [stdout]  --> src/runtime/coroutine_vm.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use parking_lot::Mutex;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::vm::value::Function`
[INFO] [stdout]   --> src/runtime/coroutine_vm.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::vm::value::Function;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VMState`
[INFO] [stdout]   --> src/runtime/coroutine_vm.rs:15:22
[INFO] [stdout]    |
[INFO] [stdout] 15 | use super::context::{VMState, CallFrameSnapshot};
[INFO] [stdout]    |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::scheduler::Scheduler`
[INFO] [stdout]   --> src/runtime/coroutine_vm.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use super::scheduler::Scheduler;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> src/runtime/preempt.rs:202:9
[INFO] [stdout]     |
[INFO] [stdout] 202 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/runtime/runtime.rs:188:1
[INFO] [stdout]     |
[INFO] [stdout] 188 | /// 线程本地运行时句柄
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `GoroutineStatus` and `Goroutine`
[INFO] [stdout]   --> src/runtime/runtime.rs:16:24
[INFO] [stdout]    |
[INFO] [stdout] 16 | use super::goroutine::{Goroutine, GoroutineStatus};
[INFO] [stdout]    |                        ^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::preempt::PreemptTracker`
[INFO] [stdout]   --> src/runtime/runtime.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use super::preempt::PreemptTracker;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RuntimeConfig`, `RuntimeHandle`, and `Runtime`
[INFO] [stdout]   --> src/runtime/mod.rs:22:19
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub use runtime::{Runtime, RuntimeConfig, RuntimeHandle};
[INFO] [stdout]    |                   ^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `GoroutineStatus` and `Goroutine`
[INFO] [stdout]   --> src/runtime/mod.rs:24:21
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub use goroutine::{Goroutine, GoroutineStatus};
[INFO] [stdout]    |                     ^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `stack::Stack`
[INFO] [stdout]   --> src/runtime/mod.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub use stack::Stack;
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `queue::LocalQueue`
[INFO] [stdout]   --> src/runtime/mod.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub use queue::LocalQueue;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `processor::Processor`
[INFO] [stdout]   --> src/runtime/mod.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub use processor::Processor;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parking_lot::Mutex`
[INFO] [stdout]  --> src/compiler/codegen.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use parking_lot::Mutex;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AtomicUsize`
[INFO] [stdout]   --> src/vm/vm.rs:11:37
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::sync::atomic::{AtomicBool, AtomicUsize};
[INFO] [stdout]    |                                     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `machine::Machine`
[INFO] [stdout]   --> src/runtime/mod.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub use machine::Machine;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SCHEDULER` and `Scheduler`
[INFO] [stdout]   --> src/runtime/mod.rs:29:21
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub use scheduler::{Scheduler, SCHEDULER};
[INFO] [stdout]    |                     ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `channel::Channel`
[INFO] [stdout]   --> src/runtime/mod.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub use channel::Channel;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `context::Context`
[INFO] [stdout]   --> src/runtime/mod.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub use context::Context;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FunctionSignature`, `InterfaceDef`, and `TraitDef`
[INFO] [stdout]  --> src/typechecker/environment.rs:6:51
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::types::{Type, TypeBound, GenericParam, FunctionSignature, TraitDef, InterfaceDef, TraitImpl};
[INFO] [stdout]   |                                                   ^^^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/typechecker/unify.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ChannelState` and `WaitGroupState`
[INFO] [stdout]     --> src/vm/vm.rs:4222:40
[INFO] [stdout]      |
[INFO] [stdout] 4222 |                     use super::value::{ChannelState, WaitGroupState};
[INFO] [stdout]      |                                        ^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WhereClause`
[INFO] [stdout]  --> src/typechecker/checker.rs:7:37
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::parser::ast::{TypeParam, WhereClause, FnParam, TypeAnnotation};
[INFO] [stdout]   |                                     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Substitution` and `TypeBound`
[INFO] [stdout]  --> src/typechecker/checker.rs:8:26
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::types::{Type, TypeBound, GenericParam, Substitution};
[INFO] [stdout]   |                          ^^^^^^^^^                ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Constraint`
[INFO] [stdout]   --> src/typechecker/checker.rs:11:25
[INFO] [stdout]    |
[INFO] [stdout] 11 | use super::constraint::{Constraint, ConstraintSolver};
[INFO] [stdout]    |                         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::unify::Unifier`
[INFO] [stdout]   --> src/typechecker/checker.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use super::unify::Unifier;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::atomic::Ordering`
[INFO] [stdout]     --> src/vm/vm.rs:4223:25
[INFO] [stdout]      |
[INFO] [stdout] 4223 |                     use std::sync::atomic::Ordering;
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/typechecker/monomorphize.rs:5:33
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Expr`
[INFO] [stdout]  --> src/typechecker/monomorphize.rs:6:27
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::parser::{Stmt, Expr, Program};
[INFO] [stdout]   |                           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ClassMethod`, `StructMethod`, and `TypeAnnotation`
[INFO] [stdout]  --> src/typechecker/monomorphize.rs:7:26
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::parser::ast::{ClassMethod, StructMethod, TypeAnnotation};
[INFO] [stdout]   |                          ^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::lexer::Span`
[INFO] [stdout]  --> src/typechecker/monomorphize.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::lexer::Span;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `select`
[INFO] [stdout]     --> src/vm/vm.rs:4548:45
[INFO] [stdout]      |
[INFO] [stdout] 4548 |                     use crossbeam_channel::{select, Sender, Receiver};
[INFO] [stdout]      |                                             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ClassInfo`, `FunctionInfo`, `TraitInfo`, `TypeEnvironment`, `TypeInfo`, and `TypeScope`
[INFO] [stdout]   --> src/typechecker/mod.rs:12:23
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use environment::{TypeEnvironment, TypeScope, TypeInfo, FunctionInfo, ClassInfo, TraitInfo};
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Unifier` and `UnifyResult`
[INFO] [stdout]   --> src/typechecker/mod.rs:13:17
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use unify::{Unifier, UnifyResult};
[INFO] [stdout]    |                 ^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ConstraintKind`, `ConstraintSolver`, and `Constraint`
[INFO] [stdout]   --> src/typechecker/mod.rs:14:22
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub use constraint::{Constraint, ConstraintKind, ConstraintSolver};
[INFO] [stdout]    |                      ^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `TypeErrorKind` and `TypeError`
[INFO] [stdout]   --> src/typechecker/mod.rs:15:17
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use error::{TypeError, TypeErrorKind};
[INFO] [stdout]    |                 ^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MonoKey`, `MonomorphizedClass`, `MonomorphizedFunction`, and `MonomorphizedStruct`
[INFO] [stdout]   --> src/typechecker/mod.rs:17:39
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub use monomorphize::{Monomorphizer, MonoKey, MonomorphizedClass, MonomorphizedStruct, MonomorphizedFunction};
[INFO] [stdout]    |                                       ^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CallbackResponse`
[INFO] [stdout]     --> src/vm/vm.rs:6612:46
[INFO] [stdout]      |
[INFO] [stdout] 6612 |         use crate::stdlib::{CallbackRequest, CallbackResponse};
[INFO] [stdout]      |                                              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HeapObject`
[INFO] [stdout]   --> src/vm/gc.rs:10:36
[INFO] [stdout]    |
[INFO] [stdout] 10 | use super::value::{Value, HeapTag, HeapObject};
[INFO] [stdout]    |                                    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RuntimeTypeInfo`, `TraitVTable`, `VTableRegistry`, and `VTable`
[INFO] [stdout]   --> src/vm/mod.rs:12:18
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use vtable::{VTable, VTableRegistry, TraitVTable, RuntimeTypeInfo};
[INFO] [stdout]    |                  ^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ConcurrentMarkGc`, `GcResult`, `GcStats`, `Heap`, `MarkSweepGc`, `gc_register`, `gc_should_run`, `gc_stats`, and `get_heap`
[INFO] [stdout]   --> src/vm/mod.rs:13:14
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use gc::{Heap, MarkSweepGc, ConcurrentMarkGc, GcResult, GcStats, get_heap, gc_register, gc_should_run, gc_stats};
[INFO] [stdout]    |              ^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/package/resolver.rs:6:17
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ResolvedImport`
[INFO] [stdout]  --> src/package/mod.rs:9:37
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use resolver::{PackageResolver, ResolvedImport, ImportKind};
[INFO] [stdout]   |                                     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::vm::value::Value`
[INFO] [stdout]   --> src/stdlib/net/tcp.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |     use crate::vm::value::Value;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/stdlib/net/tcp.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |     use std::sync::Arc;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parking_lot::Mutex`
[INFO] [stdout]   --> src/stdlib/net/tcp.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     use parking_lot::Mutex;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::vm::value::Value`
[INFO] [stdout]   --> src/stdlib/net/mod.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 89 |         use crate::vm::value::Value;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/stdlib/net/mod.rs:90:13
[INFO] [stdout]    |
[INFO] [stdout] 90 |         use std::sync::Arc;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parking_lot::Mutex`
[INFO] [stdout]   --> src/stdlib/net/mod.rs:91:13
[INFO] [stdout]    |
[INFO] [stdout] 91 |         use parking_lot::Mutex;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `THROWABLE_TYPES` and `is_throwable_type`
[INFO] [stdout]   --> src/stdlib/mod.rs:11:21
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use exception::{THROWABLE_TYPES, is_throwable_type};
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parking_lot::Mutex`
[INFO] [stdout]  --> src/runtime/coroutine_vm.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use parking_lot::Mutex;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::vm::value::Function`
[INFO] [stdout]   --> src/runtime/coroutine_vm.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::vm::value::Function;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VMState`
[INFO] [stdout]   --> src/runtime/coroutine_vm.rs:15:22
[INFO] [stdout]    |
[INFO] [stdout] 15 | use super::context::{VMState, CallFrameSnapshot};
[INFO] [stdout]    |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::scheduler::Scheduler`
[INFO] [stdout]   --> src/runtime/coroutine_vm.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use super::scheduler::Scheduler;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> src/runtime/preempt.rs:202:9
[INFO] [stdout]     |
[INFO] [stdout] 202 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/runtime/runtime.rs:188:1
[INFO] [stdout]     |
[INFO] [stdout] 188 | /// 线程本地运行时句柄
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `GoroutineStatus` and `Goroutine`
[INFO] [stdout]   --> src/runtime/runtime.rs:16:24
[INFO] [stdout]    |
[INFO] [stdout] 16 | use super::goroutine::{Goroutine, GoroutineStatus};
[INFO] [stdout]    |                        ^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::preempt::PreemptTracker`
[INFO] [stdout]   --> src/runtime/runtime.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use super::preempt::PreemptTracker;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RuntimeConfig`, `RuntimeHandle`, and `Runtime`
[INFO] [stdout]   --> src/runtime/mod.rs:22:19
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub use runtime::{Runtime, RuntimeConfig, RuntimeHandle};
[INFO] [stdout]    |                   ^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `GoroutineStatus` and `Goroutine`
[INFO] [stdout]   --> src/runtime/mod.rs:24:21
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub use goroutine::{Goroutine, GoroutineStatus};
[INFO] [stdout]    |                     ^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `stack::Stack`
[INFO] [stdout]   --> src/runtime/mod.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub use stack::Stack;
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `queue::LocalQueue`
[INFO] [stdout]   --> src/runtime/mod.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub use queue::LocalQueue;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `processor::Processor`
[INFO] [stdout]   --> src/runtime/mod.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub use processor::Processor;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `machine::Machine`
[INFO] [stdout]   --> src/runtime/mod.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub use machine::Machine;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SCHEDULER` and `Scheduler`
[INFO] [stdout]   --> src/runtime/mod.rs:29:21
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub use scheduler::{Scheduler, SCHEDULER};
[INFO] [stdout]    |                     ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `channel::Channel`
[INFO] [stdout]   --> src/runtime/mod.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub use channel::Channel;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `context::Context`
[INFO] [stdout]   --> src/runtime/mod.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub use context::Context;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FunctionSignature`, `InterfaceDef`, and `TraitDef`
[INFO] [stdout]  --> src/typechecker/environment.rs:6:51
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::types::{Type, TypeBound, GenericParam, FunctionSignature, TraitDef, InterfaceDef, TraitImpl};
[INFO] [stdout]   |                                                   ^^^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/typechecker/unify.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WhereClause`
[INFO] [stdout]  --> src/typechecker/checker.rs:7:37
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::parser::ast::{TypeParam, WhereClause, FnParam, TypeAnnotation};
[INFO] [stdout]   |                                     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Substitution` and `TypeBound`
[INFO] [stdout]  --> src/typechecker/checker.rs:8:26
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::types::{Type, TypeBound, GenericParam, Substitution};
[INFO] [stdout]   |                          ^^^^^^^^^                ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Constraint`
[INFO] [stdout]   --> src/typechecker/checker.rs:11:25
[INFO] [stdout]    |
[INFO] [stdout] 11 | use super::constraint::{Constraint, ConstraintSolver};
[INFO] [stdout]    |                         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::unify::Unifier`
[INFO] [stdout]   --> src/typechecker/checker.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use super::unify::Unifier;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/typechecker/monomorphize.rs:5:33
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Expr`
[INFO] [stdout]  --> src/typechecker/monomorphize.rs:6:27
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::parser::{Stmt, Expr, Program};
[INFO] [stdout]   |                           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ClassMethod`, `StructMethod`, and `TypeAnnotation`
[INFO] [stdout]  --> src/typechecker/monomorphize.rs:7:26
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::parser::ast::{ClassMethod, StructMethod, TypeAnnotation};
[INFO] [stdout]   |                          ^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::lexer::Span`
[INFO] [stdout]  --> src/typechecker/monomorphize.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::lexer::Span;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ClassInfo`, `FunctionInfo`, `TraitInfo`, `TypeEnvironment`, `TypeInfo`, and `TypeScope`
[INFO] [stdout]   --> src/typechecker/mod.rs:12:23
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use environment::{TypeEnvironment, TypeScope, TypeInfo, FunctionInfo, ClassInfo, TraitInfo};
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Unifier` and `UnifyResult`
[INFO] [stdout]   --> src/typechecker/mod.rs:13:17
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use unify::{Unifier, UnifyResult};
[INFO] [stdout]    |                 ^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ConstraintKind`, `ConstraintSolver`, and `Constraint`
[INFO] [stdout]   --> src/typechecker/mod.rs:14:22
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub use constraint::{Constraint, ConstraintKind, ConstraintSolver};
[INFO] [stdout]    |                      ^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `TypeErrorKind` and `TypeError`
[INFO] [stdout]   --> src/typechecker/mod.rs:15:17
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use error::{TypeError, TypeErrorKind};
[INFO] [stdout]    |                 ^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MonoKey`, `MonomorphizedClass`, `MonomorphizedFunction`, and `MonomorphizedStruct`
[INFO] [stdout]   --> src/typechecker/mod.rs:17:39
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub use monomorphize::{Monomorphizer, MonoKey, MonomorphizedClass, MonomorphizedStruct, MonomorphizedFunction};
[INFO] [stdout]    |                                       ^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nested`
[INFO] [stdout]    --> src/compiler/codegen.rs:794:54
[INFO] [stdout]     |
[INFO] [stdout] 794 | ...                   MatchPattern::Or(nested) => {
[INFO] [stdout]     |                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_nested`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/compiler/symbol.rs:324:14
[INFO] [stdout]     |
[INFO] [stdout] 324 |         for (i, symbol) in self.symbols.iter_mut().enumerate().rev() {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nested`
[INFO] [stdout]    --> src/compiler/codegen.rs:794:54
[INFO] [stdout]     |
[INFO] [stdout] 794 | ...                   MatchPattern::Or(nested) => {
[INFO] [stdout]     |                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_nested`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `saved_ip`
[INFO] [stdout]    --> src/vm/vm.rs:344:13
[INFO] [stdout]     |
[INFO] [stdout] 344 |         let saved_ip = self.ip;
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_saved_ip`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/compiler/symbol.rs:324:14
[INFO] [stdout]     |
[INFO] [stdout] 324 |         for (i, symbol) in self.symbols.iter_mut().enumerate().rev() {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `saved_ip`
[INFO] [stdout]    --> src/vm/vm.rs:344:13
[INFO] [stdout]     |
[INFO] [stdout] 344 |         let saved_ip = self.ip;
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_saved_ip`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `result_value` is never read
[INFO] [stdout]     --> src/vm/vm.rs:3898:75
[INFO] [stdout]      |
[INFO] [stdout] 3898 | ...                   let mut result_value: Option<Value> = None;
[INFO] [stdout]      |                                                             ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 3910 | ...                               result_value = Some(result);
[INFO] [stdout]      |                                   --------------------------- `result_value` is overwritten here before the previous value is read
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/vm/vtable.rs:55:13
[INFO] [stdout]    |
[INFO] [stdout] 55 |         let mut vtable = Self {
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vtable`
[INFO] [stdout]    --> src/vm/vtable.rs:337:13
[INFO] [stdout]     |
[INFO] [stdout] 337 |         let vtable = registry.register(vtable);
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_vtable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gc`
[INFO] [stdout]    --> src/vm/gc.rs:905:13
[INFO] [stdout]     |
[INFO] [stdout] 905 |         let gc = MarkSweepGc::new(heap.clone());
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_gc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `result_value` is never read
[INFO] [stdout]     --> src/vm/vm.rs:3898:75
[INFO] [stdout]      |
[INFO] [stdout] 3898 | ...                   let mut result_value: Option<Value> = None;
[INFO] [stdout]      |                                                             ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 3910 | ...                               result_value = Some(result);
[INFO] [stdout]      |                                   --------------------------- `result_value` is overwritten here before the previous value is read
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/vm/vtable.rs:55:13
[INFO] [stdout]    |
[INFO] [stdout] 55 |         let mut vtable = Self {
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class_name`
[INFO] [stdout]    --> src/stdlib/mod.rs:124:25
[INFO] [stdout]     |
[INFO] [stdout] 124 |     fn has_class(&self, class_name: &str) -> bool {
[INFO] [stdout]     |                         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_class_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]    --> src/stdlib/mod.rs:131:55
[INFO] [stdout]     |
[INFO] [stdout] 131 |     fn create_class_instance(&self, class_name: &str, args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |                                                       ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `instance`
[INFO] [stdout]    --> src/stdlib/mod.rs:139:27
[INFO] [stdout]     |
[INFO] [stdout] 139 |     fn call_method(&self, instance: &Value, method_name: &str, args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instance`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]    --> src/stdlib/mod.rs:139:64
[INFO] [stdout]     |
[INFO] [stdout] 139 |     fn call_method(&self, instance: &Value, method_name: &str, args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |                                                                ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]    --> src/runtime/goroutine.rs:192:25
[INFO] [stdout]     |
[INFO] [stdout] 192 |     pub fn reset(&self, id: GoId, func: Arc<Function>, args: Vec<Value>) {
[INFO] [stdout]     |                         ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]    --> src/runtime/goroutine.rs:192:56
[INFO] [stdout]     |
[INFO] [stdout] 192 |     pub fn reset(&self, id: GoId, func: Arc<Function>, args: Vec<Value>) {
[INFO] [stdout]     |                                                        ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b1`
[INFO] [stdout]   --> src/typechecker/unify.rs:63:48
[INFO] [stdout]    |
[INFO] [stdout] 63 |             (TypeParameter { name: n1, bounds: b1 }, TypeParameter { name: n2, bounds: b2 }) => {
[INFO] [stdout]    |                                                ^^ help: if this is intentional, prefix it with an underscore: `_b1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b2`
[INFO] [stdout]   --> src/typechecker/unify.rs:63:88
[INFO] [stdout]    |
[INFO] [stdout] 63 |             (TypeParameter { name: n1, bounds: b1 }, TypeParameter { name: n2, bounds: b2 }) => {
[INFO] [stdout]    |                                                                                        ^^ help: if this is intentional, prefix it with an underscore: `_b2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `generic`
[INFO] [stdout]    --> src/typechecker/constraint.rs:184:43
[INFO] [stdout]     |
[INFO] [stdout] 184 |             ConstraintKind::Instantiate { generic, args } => {
[INFO] [stdout]     |                                           ^^^^^^^ help: try ignoring the field: `generic: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]    --> src/typechecker/constraint.rs:184:52
[INFO] [stdout]     |
[INFO] [stdout] 184 |             ConstraintKind::Instantiate { generic, args } => {
[INFO] [stdout]     |                                                    ^^^^ help: try ignoring the field: `args: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `main_signature_valid` is assigned to, but never used
[INFO] [stdout]    --> src/typechecker/checker.rs:479:13
[INFO] [stdout]     |
[INFO] [stdout] 479 |         let mut main_signature_valid = true;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_main_signature_valid` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `main_signature_valid` is never read
[INFO] [stdout]    --> src/typechecker/checker.rs:486:25
[INFO] [stdout]     |
[INFO] [stdout] 486 |                         main_signature_valid = false;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/typechecker/checker.rs:551:28
[INFO] [stdout]     |
[INFO] [stdout] 551 |                 if let Err(e) = self.env.register_type(name.clone(), TypeInfo::Struct(info)) {
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/typechecker/checker.rs:571:28
[INFO] [stdout]     |
[INFO] [stdout] 571 |                 if let Err(e) = self.env.register_type(name.clone(), TypeInfo::Class(info)) {
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/typechecker/checker.rs:585:28
[INFO] [stdout]     |
[INFO] [stdout] 585 |                 if let Err(e) = self.env.register_type(name.clone(), TypeInfo::Interface(info)) {
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/typechecker/checker.rs:602:28
[INFO] [stdout]     |
[INFO] [stdout] 602 |                 if let Err(e) = self.env.register_type(name.clone(), TypeInfo::Trait(info)) {
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/typechecker/checker.rs:623:28
[INFO] [stdout]     |
[INFO] [stdout] 623 |                 if let Err(e) = self.env.register_type(name.clone(), TypeInfo::Enum(info)) {
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/typechecker/checker.rs:631:28
[INFO] [stdout]     |
[INFO] [stdout] 631 |                 if let Err(e) = self.env.register_type(
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/typechecker/checker.rs:671:30
[INFO] [stdout]     |
[INFO] [stdout] 671 |             Stmt::ClassDef { name, interfaces, traits, methods, span, .. } => {
[INFO] [stdout]     |                              ^^^^ help: try ignoring the field: `name: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/typechecker/checker.rs:766:31
[INFO] [stdout]     |
[INFO] [stdout] 766 |                     .map_err(|e| TypeError::new(TypeErrorKind::DuplicateDefinition(name.clone()), *span))?;
[INFO] [stdout]     |                               ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/typechecker/checker.rs:749:31
[INFO] [stdout]     |
[INFO] [stdout] 749 |                     .map_err(|e| TypeError::new(TypeErrorKind::DuplicateDefinition(name.clone()), *span))?;
[INFO] [stdout]     |                               ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]    --> src/typechecker/checker.rs:721:38
[INFO] [stdout]     |
[INFO] [stdout] 721 |             Stmt::Expression { expr, span } => {
[INFO] [stdout]     |                                      ^^^^ help: try ignoring the field: `span: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]    --> src/typechecker/checker.rs:725:33
[INFO] [stdout]     |
[INFO] [stdout] 725 |             Stmt::Print { expr, span, .. } => {
[INFO] [stdout]     |                                 ^^^^ help: try ignoring the field: `span: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/typechecker/checker.rs:905:27
[INFO] [stdout]     |
[INFO] [stdout] 905 |             Stmt::FnDef { name, type_params, params, return_type, body, span, .. } => {
[INFO] [stdout]     |                           ^^^^ help: try ignoring the field: `name: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]    --> src/typechecker/checker.rs:975:34
[INFO] [stdout]     |
[INFO] [stdout] 975 |             Stmt::Throw { value, span } => {
[INFO] [stdout]     |                                  ^^^^ help: try ignoring the field: `span: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]     --> src/typechecker/checker.rs:1218:27
[INFO] [stdout]      |
[INFO] [stdout] 1218 |             Expr::Range { start, end, inclusive, span } => {
[INFO] [stdout]      |                           ^^^^^ help: try ignoring the field: `start: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end`
[INFO] [stdout]     --> src/typechecker/checker.rs:1218:34
[INFO] [stdout]      |
[INFO] [stdout] 1218 |             Expr::Range { start, end, inclusive, span } => {
[INFO] [stdout]      |                                  ^^^ help: try ignoring the field: `end: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inclusive`
[INFO] [stdout]     --> src/typechecker/checker.rs:1218:39
[INFO] [stdout]      |
[INFO] [stdout] 1218 |             Expr::Range { start, end, inclusive, span } => {
[INFO] [stdout]      |                                       ^^^^^^^^^ help: try ignoring the field: `inclusive: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]     --> src/typechecker/checker.rs:1218:50
[INFO] [stdout]      |
[INFO] [stdout] 1218 |             Expr::Range { start, end, inclusive, span } => {
[INFO] [stdout]      |                                                  ^^^^ help: try ignoring the field: `span: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]     --> src/typechecker/checker.rs:1223:56
[INFO] [stdout]      |
[INFO] [stdout] 1223 |             Expr::Closure { params, return_type, body, span } => {
[INFO] [stdout]      |                                                        ^^^^ help: try ignoring the field: `span: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `force`
[INFO] [stdout]     --> src/typechecker/checker.rs:1373:45
[INFO] [stdout]      |
[INFO] [stdout] 1373 |             Expr::Cast { expr, target_type, force, span } => {
[INFO] [stdout]      |                                             ^^^^^ help: try ignoring the field: `force: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]     --> src/typechecker/checker.rs:1373:52
[INFO] [stdout]      |
[INFO] [stdout] 1373 |             Expr::Cast { expr, target_type, force, span } => {
[INFO] [stdout]      |                                                    ^^^^ help: try ignoring the field: `span: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr_ty`
[INFO] [stdout]     --> src/typechecker/checker.rs:1374:21
[INFO] [stdout]      |
[INFO] [stdout] 1374 |                 let expr_ty = self.infer_expr(expr)?;
[INFO] [stdout]      |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expr_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `check_type`
[INFO] [stdout]     --> src/typechecker/checker.rs:1379:37
[INFO] [stdout]      |
[INFO] [stdout] 1379 |             Expr::TypeCheck { expr, check_type, span } => {
[INFO] [stdout]      |                                     ^^^^^^^^^^ help: try ignoring the field: `check_type: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]     --> src/typechecker/checker.rs:1379:49
[INFO] [stdout]      |
[INFO] [stdout] 1379 |             Expr::TypeCheck { expr, check_type, span } => {
[INFO] [stdout]      |                                                 ^^^^ help: try ignoring the field: `span: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]     --> src/typechecker/checker.rs:1384:30
[INFO] [stdout]      |
[INFO] [stdout] 1384 |             Expr::Go { call, span } => {
[INFO] [stdout]      |                              ^^^^ help: try ignoring the field: `span: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `main_file`
[INFO] [stdout]    --> src/main.rs:333:5
[INFO] [stdout]     |
[INFO] [stdout] 333 |     main_file: Option<&Path>,
[INFO] [stdout]     |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_main_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class_name`
[INFO] [stdout]    --> src/stdlib/mod.rs:124:25
[INFO] [stdout]     |
[INFO] [stdout] 124 |     fn has_class(&self, class_name: &str) -> bool {
[INFO] [stdout]     |                         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_class_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]    --> src/stdlib/mod.rs:131:55
[INFO] [stdout]     |
[INFO] [stdout] 131 |     fn create_class_instance(&self, class_name: &str, args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |                                                       ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `instance`
[INFO] [stdout]    --> src/stdlib/mod.rs:139:27
[INFO] [stdout]     |
[INFO] [stdout] 139 |     fn call_method(&self, instance: &Value, method_name: &str, args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instance`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]    --> src/stdlib/mod.rs:139:64
[INFO] [stdout]     |
[INFO] [stdout] 139 |     fn call_method(&self, instance: &Value, method_name: &str, args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |                                                                ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_compile_context` is never used
[INFO] [stdout]    --> src/main.rs:394:4
[INFO] [stdout]     |
[INFO] [stdout] 394 | fn build_compile_context(file_path: &Path) -> CompileContext {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `code`, `name`, and `from_env` are never used
[INFO] [stdout]   --> src/i18n/mod.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl Locale {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn code(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn name(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn from_env() -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_message_named` is never used
[INFO] [stdout]   --> src/i18n/mod.rs:86:8
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub fn format_message_named(key: &str, locale: Locale, args: &[(&str, &str)]) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/parser/parser.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub enum ParseErrorKind {
[INFO] [stdout]    |          -------------- variants in this enum
[INFO] [stdout] 34 |     /// 意外的 token
[INFO] [stdout] 35 |     UnexpectedToken,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 36 |     /// 期望的 token 未找到
[INFO] [stdout] 37 |     ExpectedToken,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 38 |     /// 意外的文件结束
[INFO] [stdout] 39 |     UnexpectedEof,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     InvalidExpression,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 44 |     /// 重复定义
[INFO] [stdout] 45 |     DuplicateDefinition,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// 无效的赋值目标
[INFO] [stdout] 47 |     InvalidAssignmentTarget,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 48 |     /// 无效的类型
[INFO] [stdout] 49 |     InvalidType,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ParseErrorKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `kind`, `expected`, and `found` are never read
[INFO] [stdout]   --> src/parser/parser.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct ParseError {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub kind: ParseErrorKind,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 61 |     /// 期望的内容（如果有）
[INFO] [stdout] 62 |     pub expected: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 63 |     /// 实际得到的内容
[INFO] [stdout] 64 |     pub found: Option<String>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ParseError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `with_kind`, `expected_token`, `unexpected_token`, `unexpected_eof`, and `with_hint` are never used
[INFO] [stdout]    --> src/parser/parser.rs:83:8
[INFO] [stdout]     |
[INFO] [stdout]  69 | impl ParseError {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  83 |     fn with_kind(message: String, span: Span, kind: ParseErrorKind) -> Self {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     fn expected_token(expected: &str, found: &str, span: Span) -> Self {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     fn unexpected_token(found: &str, context: &str, span: Span) -> Self {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     fn unexpected_eof(context: &str, span: Span) -> Self {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     fn with_hint(mut self, hint: impl Into<String>) -> Self {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `parse_where_clauses`, `parse_single_where_clause`, `synchronize_to`, `report_error`, and `expect_one_of` are never used
[INFO] [stdout]     --> src/parser/parser.rs:1019:8
[INFO] [stdout]      |
[INFO] [stdout]  166 | impl Parser {
[INFO] [stdout]      | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1019 |     fn parse_where_clauses(&mut self) -> Result<Vec<super::ast::WhereClause>, ParseError> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1063 |     fn parse_single_where_clause(&mut self) -> Result<super::ast::WhereClause, ParseError> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3419 |     fn synchronize_to(&mut self, kinds: &[TokenKind]) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3434 |     fn report_error(&mut self, error: ParseError) {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3442 |     fn expect_one_of(&mut self, kinds: &[TokenKind]) -> Result<Token, ParseError> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/vm/vm.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | impl RuntimeError {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 65 |     /// 创建新的运行时错误
[INFO] [stdout] 66 |     pub fn new(message: String, line: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `vtable_registry` and `inline_cache` are never read
[INFO] [stdout]    --> src/vm/vm.rs:141:5
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub struct VM {
[INFO] [stdout]     |            -- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 141 |     vtable_registry: super::vtable::VTableRegistry,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     inline_cache: std::collections::HashMap<(String, String), u16>,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/vm/vm.rs:172:12
[INFO] [stdout]      |
[INFO] [stdout]  152 | impl VM {
[INFO] [stdout]      | ------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  172 |     pub fn with_preempt(chunk: Arc<Chunk>, locale: Locale, preempt_flag: Arc<std::sync::atomic::AtomicBool>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  190 |     pub fn set_preempt_flag(&mut self, flag: Arc<std::sync::atomic::AtomicBool>) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  204 |     pub fn request_preempt(&self) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  221 |     pub fn lookup_method_cached(&mut self, type_name: &str, method_name: &str) -> Option<u16> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  242 |     pub fn clear_inline_cache(&mut self) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  251 |     pub fn scan_gc_roots<F>(&self, mut callback: F) 
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  267 |     pub fn stack_roots(&self) -> impl std::iter::Iterator<Item = &Value> {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  272 |     pub fn stack_depth(&self) -> usize {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  277 |     pub fn frame_count(&self) -> usize {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6124 |     pub fn ip(&self) -> usize {
[INFO] [stdout]      |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 6130 |     pub fn set_ip_value(&mut self, ip: usize) {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6136 |     pub fn current_base(&self) -> usize {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6142 |     pub fn set_current_base(&mut self, base: usize) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6147 |     pub fn save_stack(&self) -> Vec<Value> {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6152 |     pub fn restore_stack(&mut self, stack: &[Value]) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6158 |     pub fn save_frames(&self) -> Vec<crate::runtime::context::CallFrameSnapshot> {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6167 |     pub fn restore_frames(&mut self, frames: &[crate::runtime::context::CallFrameSnapshot]) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6181 |     pub fn push_value(&mut self, value: Value) {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6188 |     pub fn step(&mut self) -> Result<bool, RuntimeError> {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6236 |     fn step_sync(&mut self) -> Result<(), RuntimeError> {
[INFO] [stdout]      |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6484 |     pub fn get_or_create_vtable(&mut self, type_name: &str) -> std::sync::Arc<super::vtable::VTable> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6489 |     pub fn register_vtable(&mut self, vtable: super::vtable::VTable) -> std::sync::Arc<super::vtable::VTable> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6494 |     pub fn value_implements_trait(&self, value: &Value, trait_name: &str) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6513 |     pub fn vtable_dispatch(&mut self, receiver: &Value, method_name: &str, args: Vec<Value>) -> Result<Value, RuntimeError> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6554 |     pub fn init_type_vtable(&mut self, type_name: &str) -> Option<std::sync::Arc<super::vtable::VTable>> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6581 |     pub fn get_runtime_type_info(&self, value: &Value) -> Option<super::vtable::RuntimeTypeInfo> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]    --> src/runtime/goroutine.rs:192:25
[INFO] [stdout]     |
[INFO] [stdout] 192 |     pub fn reset(&self, id: GoId, func: Arc<Function>, args: Vec<Value>) {
[INFO] [stdout]     |                         ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]    --> src/runtime/goroutine.rs:192:56
[INFO] [stdout]     |
[INFO] [stdout] 192 |     pub fn reset(&self, id: GoId, func: Arc<Function>, args: Vec<Value>) {
[INFO] [stdout]     |                                                        ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> src/vm/vtable.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct VTableEntry {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 17 |     /// 方法名
[INFO] [stdout] 18 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VTableEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `lookup_method` and `get_slot_func_index` are never used
[INFO] [stdout]   --> src/vm/vtable.rs:85:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl VTable {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub fn lookup_method(&self, name: &str) -> Option<MethodIndex> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 99 |     pub fn get_slot_func_index(&self, slot_index: MethodIndex) -> Option<usize> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `trait_name` is never read
[INFO] [stdout]    --> src/vm/vtable.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub struct TraitVTable {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] 127 |     /// Trait 名称
[INFO] [stdout] 128 |     pub trait_name: String,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TraitVTable` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_or_create` and `create_with_parent` are never used
[INFO] [stdout]    --> src/vm/vtable.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 164 | impl VTableRegistry {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn get_or_create(&mut self, type_name: &str) -> Arc<VTable> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     pub fn create_with_parent(&mut self, type_name: &str, parent_name: &str) -> Option<Arc<VTable>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RuntimeTypeInfo` is never constructed
[INFO] [stdout]    --> src/vm/vtable.rs:220:12
[INFO] [stdout]     |
[INFO] [stdout] 220 | pub struct RuntimeTypeInfo {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FieldInfo` is never constructed
[INFO] [stdout]    --> src/vm/vtable.rs:233:12
[INFO] [stdout]     |
[INFO] [stdout] 233 | pub struct FieldInfo {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_field`, `get_field_index`, and `set_vtable` are never used
[INFO] [stdout]    --> src/vm/vtable.rs:244:12
[INFO] [stdout]     |
[INFO] [stdout] 242 | impl RuntimeTypeInfo {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] 243 |     /// 创建新的类型信息
[INFO] [stdout] 244 |     pub fn new(type_id: TypeId, type_name: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn add_field(&mut self, name: impl Into<String>, is_mutable: bool) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 265 |     pub fn get_field_index(&self, name: &str) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 272 |     pub fn set_vtable(&mut self, vtable: Arc<VTable>) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OLD_GEN_THRESHOLD` is never used
[INFO] [stdout]   --> src/vm/gc.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const OLD_GEN_THRESHOLD: usize = 8 * 1024 * 1024; // 8MB
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PROMOTION_AGE` is never used
[INFO] [stdout]   --> src/vm/gc.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const PROMOTION_AGE: u8 = 3;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GcHeader` is never constructed
[INFO] [stdout]   --> src/vm/gc.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct GcHeader {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AtomicU8` is never constructed
[INFO] [stdout]   --> src/vm/gc.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct AtomicU8(AtomicUsize);
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `load`, `store`, and `fetch_add` are never used
[INFO] [stdout]   --> src/vm/gc.rs:49:18
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl AtomicU8 {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 49 |     pub const fn new(v: u8) -> Self {
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn load(&self, order: Ordering) -> u8 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn store(&self, v: u8, order: Ordering) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn fetch_add(&self, v: u8, order: Ordering) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/vm/gc.rs:67:12
[INFO] [stdout]    |
[INFO] [stdout] 66 | impl GcHeader {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 67 |     pub fn new(size: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `total_frees`, `major_gc_count`, `last_gc_time_ns`, and `total_pause_time_ns` are never read
[INFO] [stdout]   --> src/vm/gc.rs:87:9
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub struct GcStats {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub total_frees: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93 |     pub major_gc_count: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 94 |     /// 上次 GC 耗时（纳秒）
[INFO] [stdout] 95 |     pub last_gc_time_ns: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 96 |     /// 总 GC 暂停时间（纳秒）
[INFO] [stdout] 97 |     pub total_pause_time_ns: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GcStats` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `ptr`, `tag`, `size`, `marked`, `age`, and `in_old_gen` are never read
[INFO] [stdout]    --> src/vm/gc.rs:107:5
[INFO] [stdout]     |
[INFO] [stdout] 105 | struct AllocatedObject {
[INFO] [stdout]     |        --------------- fields in this struct
[INFO] [stdout] 106 |     /// 对象指针
[INFO] [stdout] 107 |     ptr: u64,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 108 |     /// 堆标签
[INFO] [stdout] 109 |     tag: HeapTag,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 110 |     /// 对象大小
[INFO] [stdout] 111 |     size: usize,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 112 |     /// 是否已标记
[INFO] [stdout] 113 |     marked: bool,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 114 |     /// 对象年龄
[INFO] [stdout] 115 |     age: u8,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 116 |     /// 是否在老年代
[INFO] [stdout] 117 |     in_old_gen: bool,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `old_gen`, `old_size`, and `gc_running` are never read
[INFO] [stdout]    --> src/vm/gc.rs:125:5
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub struct Heap {
[INFO] [stdout]     |            ---- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 125 |     old_gen: Mutex<Vec<AllocatedObject>>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     old_size: AtomicUsize,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     gc_running: AtomicBool,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `should_major_gc`, `set_enabled`, and `is_gc_running` are never used
[INFO] [stdout]    --> src/vm/gc.rs:191:12
[INFO] [stdout]     |
[INFO] [stdout] 140 | impl Heap {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn should_major_gc(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn set_enabled(&self, enabled: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     pub fn is_gc_running(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `heap` is never read
[INFO] [stdout]    --> src/vm/gc.rs:225:5
[INFO] [stdout]     |
[INFO] [stdout] 223 | pub struct MarkSweepGc {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] 224 |     /// 堆
[INFO] [stdout] 225 |     heap: Arc<Heap>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/vm/gc.rs:235:12
[INFO] [stdout]     |
[INFO] [stdout] 228 | impl MarkSweepGc {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 235 |     pub fn minor_gc<F>(&self, root_scanner: F) -> GcResult
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 266 |     fn do_minor_gc<F>(&self, root_scanner: F) -> GcResult
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 329 |     pub fn major_gc<F>(&self, root_scanner: F) -> GcResult
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 356 |     fn do_major_gc<F>(&self, root_scanner: F) -> GcResult
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 431 |     fn mark_value(&self, value: &Value, marked: &mut HashSet<u64>) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 449 |     fn mark_references(&self, value: &Value, marked: &mut HashSet<u64>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 514 |     fn free_object(&self, obj: &AllocatedObject) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GcResult` is never used
[INFO] [stdout]    --> src/vm/gc.rs:581:10
[INFO] [stdout]     |
[INFO] [stdout] 581 | pub enum GcResult {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gc_should_run` is never used
[INFO] [stdout]    --> src/vm/gc.rs:614:8
[INFO] [stdout]     |
[INFO] [stdout] 614 | pub fn gc_should_run() -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gc_stats` is never used
[INFO] [stdout]    --> src/vm/gc.rs:619:8
[INFO] [stdout]     |
[INFO] [stdout] 619 | pub fn gc_stats() -> GcStats {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ConcurrentMarkState` is never used
[INFO] [stdout]    --> src/vm/gc.rs:629:10
[INFO] [stdout]     |
[INFO] [stdout] 629 | pub enum ConcurrentMarkState {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConcurrentMarkGc` is never constructed
[INFO] [stdout]    --> src/vm/gc.rs:648:12
[INFO] [stdout]     |
[INFO] [stdout] 648 | pub struct ConcurrentMarkGc {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/vm/gc.rs:662:12
[INFO] [stdout]     |
[INFO] [stdout] 660 | impl ConcurrentMarkGc {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 661 |     /// 创建并发标记 GC
[INFO] [stdout] 662 |     pub fn new(heap: Arc<Heap>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 673 |     pub fn state(&self) -> ConcurrentMarkState {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 678 |     pub fn start_cycle<F>(&self, root_scanner: F) -> bool
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 715 |     pub fn incremental_mark(&self, max_objects: usize) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 749 |     pub fn remark<F>(&self, root_scanner: F) -> bool
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 797 |     pub fn concurrent_sweep(&self) -> GcResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 862 |     pub fn write_barrier(&self, ptr: u64) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 869 |     fn mark_object_references(&self, ptr: u64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `decl` and `members` are never read
[INFO] [stdout]   --> src/package/resolver.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct ResolvedImport {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 27 |     /// 原始导入声明
[INFO] [stdout] 28 |     pub decl: ImportDecl,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub members: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ResolvedImport` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_stdlib_dir`, `is_builtin`, and `get_builtin_exports` are never used
[INFO] [stdout]    --> src/package/resolver.rs:70:12
[INFO] [stdout]     |
[INFO] [stdout]  47 | impl PackageResolver {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  70 |     pub fn set_stdlib_dir(&mut self, path: PathBuf) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 315 |     pub fn is_builtin(&self, module_path: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 320 |     pub fn get_builtin_exports(&self, module_path: &str) -> Option<&Vec<String>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `StdlibFn` is never used
[INFO] [stdout]   --> src/stdlib/mod.rs:21:10
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub type StdlibFn = fn(&[Value]) -> Result<Value, String>;
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Stop` is never constructed
[INFO] [stdout]   --> src/stdlib/mod.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub enum CallbackRequest {
[INFO] [stdout]    |          --------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 41 |     Stop,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CallbackRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `stop` is never used
[INFO] [stdout]   --> src/stdlib/mod.rs:90:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | impl CallbackChannel {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub fn stop(&self) -> Result<(), String> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `exports` and `call` are never used
[INFO] [stdout]    --> src/stdlib/mod.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub trait StdlibModule: Send + Sync {
[INFO] [stdout]     |           ------------ methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 117 |     fn exports(&self) -> Vec<&'static str>;
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     fn call(&self, name: &str, args: &[Value]) -> Result<Value, String>;
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get`, `has_module`, and `call` are never used
[INFO] [stdout]    --> src/stdlib/mod.rs:196:12
[INFO] [stdout]     |
[INFO] [stdout] 173 | impl StdlibRegistry {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 196 |     pub fn get(&self, name: &str) -> Option<&dyn StdlibModule> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn has_module(&self, name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     pub fn call(&self, module: &str, func: &str, args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated functions are never used
[INFO] [stdout]    --> src/stdlib/vmtest.rs:17:8
[INFO] [stdout]     |
[INFO] [stdout]  11 | impl VmTestLib {
[INFO] [stdout]     | -------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  17 |     fn assert(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  38 |     fn assert_equal(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  60 |     fn assert_true(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     fn assert_false(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     fn assert_null(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     fn assert_not_null(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     fn fail(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_throwable_type` is never used
[INFO] [stdout]   --> src/stdlib/exception.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub fn is_throwable_type(type_name: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_exception_parent` is never used
[INFO] [stdout]   --> src/stdlib/exception.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn get_exception_parent(class_name: &str) -> Option<&'static str> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated functions are never used
[INFO] [stdout]    --> src/stdlib/exception.rs:96:8
[INFO] [stdout]     |
[INFO] [stdout]  90 | impl ExceptionLib {
[INFO] [stdout]     | ----------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  96 |     fn create_exception_instance(class_name: &str, message: String, cause: Option<Value>) -> Value {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     fn create_throwable(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     fn create_error(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     fn create_exception(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     fn runtime_exception(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     fn null_pointer_exception(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     fn index_out_of_bounds(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     fn illegal_argument(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     fn arithmetic_exception(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     fn io_exception(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     fn is_throwable(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 258 |     fn is_exception(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 295 |     fn get_exception_type(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 320 |     fn get_exception_message(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 350 |     fn get_exception_cause(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 367 |     fn is_instance_of(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `thread_pool` is never read
[INFO] [stdout]   --> src/stdlib/net/mod.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct NetTcpLib {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 15 |     thread_pool: Arc<IoThreadPool>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_socket_ptr` is never used
[INFO] [stdout]    --> src/stdlib/net/tcp.rs:419:4
[INFO] [stdout]     |
[INFO] [stdout] 419 | fn extract_socket_ptr(value: &Value) -> Result<u64, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_listener_ptr` is never used
[INFO] [stdout]    --> src/stdlib/net/tcp.rs:425:4
[INFO] [stdout]     |
[INFO] [stdout] 425 | fn extract_listener_ptr(value: &Value) -> Result<u64, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_tcp_socket_value` is never used
[INFO] [stdout]    --> src/stdlib/net/tcp.rs:432:4
[INFO] [stdout]     |
[INFO] [stdout] 432 | fn create_tcp_socket_value(ptr: u64) -> Value {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_tcp_listener_value` is never used
[INFO] [stdout]    --> src/stdlib/net/tcp.rs:437:4
[INFO] [stdout]     |
[INFO] [stdout] 437 | fn create_tcp_listener_value(ptr: u64) -> Value {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `socket_connect` is never used
[INFO] [stdout]    --> src/stdlib/net/tcp.rs:442:8
[INFO] [stdout]     |
[INFO] [stdout] 442 | pub fn socket_connect(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `socket_send` is never used
[INFO] [stdout]    --> src/stdlib/net/tcp.rs:447:8
[INFO] [stdout]     |
[INFO] [stdout] 447 | pub fn socket_send(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `socket_receive` is never used
[INFO] [stdout]    --> src/stdlib/net/tcp.rs:480:8
[INFO] [stdout]     |
[INFO] [stdout] 480 | pub fn socket_receive(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `socket_close` is never used
[INFO] [stdout]    --> src/stdlib/net/tcp.rs:516:8
[INFO] [stdout]     |
[INFO] [stdout] 516 | pub fn socket_close(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `socket_set_read_timeout` is never used
[INFO] [stdout]    --> src/stdlib/net/tcp.rs:542:8
[INFO] [stdout]     |
[INFO] [stdout] 542 | pub fn socket_set_read_timeout(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `socket_set_write_timeout` is never used
[INFO] [stdout]    --> src/stdlib/net/tcp.rs:568:8
[INFO] [stdout]     |
[INFO] [stdout] 568 | pub fn socket_set_write_timeout(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `socket_set_nodelay` is never used
[INFO] [stdout]    --> src/stdlib/net/tcp.rs:594:8
[INFO] [stdout]     |
[INFO] [stdout] 594 | pub fn socket_set_nodelay(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `socket_shutdown` is never used
[INFO] [stdout]    --> src/stdlib/net/tcp.rs:620:8
[INFO] [stdout]     |
[INFO] [stdout] 620 | pub fn socket_shutdown(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `listener_bind` is never used
[INFO] [stdout]    --> src/stdlib/net/tcp.rs:643:8
[INFO] [stdout]     |
[INFO] [stdout] 643 | pub fn listener_bind(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `listener_accept` is never used
[INFO] [stdout]    --> src/stdlib/net/tcp.rs:648:8
[INFO] [stdout]     |
[INFO] [stdout] 648 | pub fn listener_accept(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `listener_close` is never used
[INFO] [stdout]    --> src/stdlib/net/tcp.rs:677:8
[INFO] [stdout]     |
[INFO] [stdout] 677 | pub fn listener_close(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_BUFFER_SIZE` is never used
[INFO] [stdout]   --> src/stdlib/net/http.rs:35:7
[INFO] [stdout]    |
[INFO] [stdout] 35 | const DEFAULT_BUFFER_SIZE: usize = 8192;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `protocol` and `query_params` are never read
[INFO] [stdout]   --> src/stdlib/net/http.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct ParsedUrl {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 44 |     /// 协议（http/https）
[INFO] [stdout] 45 |     pub protocol: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub query_params: HashMap<String, String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ParsedUrl` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `url_encode` is never used
[INFO] [stdout]    --> src/stdlib/net/http.rs:186:4
[INFO] [stdout]     |
[INFO] [stdout] 186 | fn url_encode(s: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `status_text` is never read
[INFO] [stdout]    --> src/stdlib/net/http.rs:263:9
[INFO] [stdout]     |
[INFO] [stdout] 259 | pub struct HttpResponseData {
[INFO] [stdout]     |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 263 |     pub status_text: String,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `HttpResponseData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `host` and `port` are never read
[INFO] [stdout]    --> src/stdlib/net/http.rs:448:5
[INFO] [stdout]     |
[INFO] [stdout] 444 | pub struct HttpServerHandle {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 448 |     host: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 449 |     /// 端口号
[INFO] [stdout] 450 |     port: u16,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_running` is never used
[INFO] [stdout]    --> src/stdlib/net/http.rs:479:8
[INFO] [stdout]     |
[INFO] [stdout] 455 | impl HttpServerHandle {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 479 |     fn is_running(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `workers` and `sender` are never read
[INFO] [stdout]  --> src/stdlib/net/io_thread_pool.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct IoThreadPool {
[INFO] [stdout]   |            ------------ fields in this struct
[INFO] [stdout] 8 |     workers: Vec<Worker>,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 9 |     sender: Sender<Task>,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `execute` is never used
[INFO] [stdout]   --> src/stdlib/net/io_thread_pool.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl IoThreadPool {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn execute<F>(&self, f: F)
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `thread` is never read
[INFO] [stdout]   --> src/stdlib/net/io_thread_pool.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | struct Worker {
[INFO] [stdout]    |        ------ field in this struct
[INFO] [stdout] 32 |     thread: Option<std::thread::JoinHandle<()>>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `num_processors` is never used
[INFO] [stdout]   --> src/runtime/mod.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn num_processors() -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `stack`, `context`, `func`, `args`, `preempt`, and `schedule_count` are never read
[INFO] [stdout]   --> src/runtime/goroutine.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct Goroutine {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub stack: Mutex<Stack>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 54 |     /// 执行上下文
[INFO] [stdout] 55 |     pub context: Mutex<Context>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 56 |     /// 要执行的函数
[INFO] [stdout] 57 |     pub func: Option<Arc<Function>>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 58 |     /// 函数参数
[INFO] [stdout] 59 |     pub args: Vec<Value>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     preempt: AtomicU8,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 64 |     /// 调度计数（用于公平调度）
[INFO] [stdout] 65 |     schedule_count: AtomicU64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/runtime/goroutine.rs:85:12
[INFO] [stdout]     |
[INFO] [stdout]  68 | impl Goroutine {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn new_main(id: GoId) -> Result<Self, super::stack::StackOverflow> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn new_idle(id: GoId) -> Result<Self, super::stack::StackOverflow> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub fn set_status(&self, status: GoroutineStatus) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub fn cas_status(&self, expected: GoroutineStatus, new: GoroutineStatus) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn is_runnable(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn is_running(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn is_waiting(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn is_dead(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub fn should_preempt(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn request_preempt(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn clear_preempt(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn inc_schedule_count(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn schedule_count(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub fn reset(&self, id: GoId, func: Arc<Function>, args: Vec<Value>) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn mark_dead(&self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 220 |     pub fn park(&self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn unpark(&self) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GoroutineHandle` is never constructed
[INFO] [stdout]    --> src/runtime/goroutine.rs:248:12
[INFO] [stdout]     |
[INFO] [stdout] 248 | pub struct GoroutineHandle {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `id`, `status`, `is_done`, and `inner` are never used
[INFO] [stdout]    --> src/runtime/goroutine.rs:254:12
[INFO] [stdout]     |
[INFO] [stdout] 252 | impl GoroutineHandle {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] 253 |     /// 创建新的句柄
[INFO] [stdout] 254 |     pub fn new(g: Arc<Goroutine>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 259 |     pub fn id(&self) -> GoId {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 264 |     pub fn status(&self) -> GoroutineStatus {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 |     pub fn is_done(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     pub fn inner(&self) -> &Arc<Goroutine> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/runtime/stack.rs:64:12
[INFO] [stdout]     |
[INFO] [stdout]  34 | impl Stack {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn with_capacity(capacity: usize) -> Result<Self, StackOverflow> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub fn base(&self) -> *mut u8 {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub fn top(&self) -> *mut u8 {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn sp(&self) -> usize {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn set_sp(&mut self, sp: usize) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn needs_grow(&self, additional: usize) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StackFrameInfo` is never constructed
[INFO] [stdout]    --> src/runtime/stack.rs:256:12
[INFO] [stdout]     |
[INFO] [stdout] 256 | pub struct StackFrameInfo {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StackScanContext` is never constructed
[INFO] [stdout]    --> src/runtime/stack.rs:268:12
[INFO] [stdout]     |
[INFO] [stdout] 268 | pub struct StackScanContext {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_frame`, and `scan_roots` are never used
[INFO] [stdout]    --> src/runtime/stack.rs:279:12
[INFO] [stdout]     |
[INFO] [stdout] 277 | impl StackScanContext {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 278 |     /// 创建新的扫描上下文
[INFO] [stdout] 279 |     pub fn new(stack: &Stack) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 288 |     pub fn add_frame(&mut self, info: StackFrameInfo) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 295 |     pub fn scan_roots<F>(&self, mut callback: F) 
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GcRootScanner` is never used
[INFO] [stdout]    --> src/runtime/stack.rs:315:11
[INFO] [stdout]     |
[INFO] [stdout] 315 | pub trait GcRootScanner {
[INFO] [stdout]     |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_full`, `steal_batch`, and `steal_batch_to_vec` are never used
[INFO] [stdout]    --> src/runtime/queue.rs:63:12
[INFO] [stdout]     |
[INFO] [stdout]  28 | impl LocalQueue {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  63 |     pub fn is_full(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn steal_batch(&self, dst: &LocalQueue) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub fn steal_batch_to_vec(&self, max: usize) -> Vec<Arc<Goroutine>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StealStats` is never constructed
[INFO] [stdout]    --> src/runtime/queue.rs:222:12
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub struct StealStats {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `record_attempt`, `success_rate`, `recent_success_rate`, and `avg_stolen_per_success` are never used
[INFO] [stdout]    --> src/runtime/queue.rs:235:18
[INFO] [stdout]     |
[INFO] [stdout] 233 | impl StealStats {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 234 |     /// 创建新的统计
[INFO] [stdout] 235 |     pub const fn new() -> Self {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub fn record_attempt(&self, success: bool, tasks_stolen: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn success_rate(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 272 |     pub fn recent_success_rate(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 277 |     pub fn avg_stolen_per_success(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AdaptiveStealStrategy` is never constructed
[INFO] [stdout]    --> src/runtime/queue.rs:297:12
[INFO] [stdout]     |
[INFO] [stdout] 297 | pub struct AdaptiveStealStrategy {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `record`, `suggested_interval`, `stats`, and `should_steal` are never used
[INFO] [stdout]    --> src/runtime/queue.rs:310:12
[INFO] [stdout]     |
[INFO] [stdout] 308 | impl AdaptiveStealStrategy {
[INFO] [stdout]     | -------------------------- associated items in this implementation
[INFO] [stdout] 309 |     /// 创建新的自适应策略
[INFO] [stdout] 310 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 320 |     pub fn record(&self, success: bool, tasks_stolen: usize) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 336 |     pub fn suggested_interval(&self) -> std::time::Duration {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 342 |     pub fn stats(&self) -> &StealStats {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 349 |     pub fn should_steal(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_empty`, `push_batch`, and `pop_batch` are never used
[INFO] [stdout]    --> src/runtime/queue.rs:411:12
[INFO] [stdout]     |
[INFO] [stdout] 394 | impl GlobalQueue {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 411 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 423 |     pub fn push_batch(&self, batch: Vec<Arc<Goroutine>>) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 444 |     pub fn pop_batch(&self, max: usize) -> Vec<Arc<Goroutine>> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `next_g`, `schedule_count`, and `last_schedule_time` are never read
[INFO] [stdout]   --> src/runtime/processor.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct Processor {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 52 |     next_g: Mutex<Option<Arc<Goroutine>>>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     schedule_count: AtomicU64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 57 |     /// 最后一次调度时间（纳秒）
[INFO] [stdout] 58 |     last_schedule_time: AtomicU64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/runtime/processor.rs:84:12
[INFO] [stdout]     |
[INFO] [stdout]  61 | impl Processor {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn set_status(&self, status: ProcessorStatus) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn is_idle(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn is_running(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn set_next(&self, g: Arc<Goroutine>) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn take_next(&self) -> Option<Arc<Goroutine>> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn bind_machine(&self, machine_id: u64) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub fn unbind_machine(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 185 |     pub fn inc_schedule_count(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn schedule_count(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 196 |     pub fn update_schedule_time(&self, time_ns: u64) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn last_schedule_time(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     pub fn enter_syscall(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn exit_syscall(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn stop(&self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `thread`, `processor`, `should_stop`, `park_mutex`, `park_cond`, and `scheduler` are never read
[INFO] [stdout]   --> src/runtime/machine.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Machine {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     thread: Mutex<Option<JoinHandle<()>>>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 21 |     /// 当前绑定的处理器
[INFO] [stdout] 22 |     processor: AtomicPtr<Processor>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     should_stop: AtomicBool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 27 |     /// 休眠/唤醒同步
[INFO] [stdout] 28 |     park_mutex: Mutex<bool>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 29 |     park_cond: Condvar,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 30 |     /// 关联的调度器
[INFO] [stdout] 31 |     scheduler: AtomicPtr<Scheduler>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/runtime/machine.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout]  36 | impl Machine {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  37 |     /// 创建新的工作线程
[INFO] [stdout]  38 |     pub fn new(id: u64) -> Arc<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  53 |     pub fn set_scheduler(&self, scheduler: *mut Scheduler) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  58 |     fn scheduler(&self) -> Option<&Scheduler> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     pub fn processor(&self) -> Option<&Processor> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn bind_processor(&self, p: &Processor) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn unbind_processor(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn start(self: &Arc<Self>) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     fn run_loop(&self) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     fn find_work(&self) -> Option<Arc<Goroutine>> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     fn execute(&self, g: Arc<Goroutine>) {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn park(&self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     pub fn unpark(&self) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn stop(&self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     pub fn join(&self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `SCHEDULER` is never used
[INFO] [stdout]   --> src/runtime/scheduler.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub static SCHEDULER: OnceLock<Scheduler> = OnceLock::new();
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_scheduler` is never used
[INFO] [stdout]   --> src/runtime/scheduler.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn get_scheduler() -> &'static Scheduler {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `max_machines`, `global_batch_size`, and `preempt_time_slice_us` are never read
[INFO] [stdout]   --> src/runtime/scheduler.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct SchedulerConfig {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub max_machines: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 34 |     /// 全局队列批量获取大小
[INFO] [stdout] 35 |     pub global_batch_size: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 36 |     /// 抢占时间片（微秒）
[INFO] [stdout] 37 |     pub preempt_time_slice_us: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SchedulerConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/runtime/scheduler.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct Scheduler {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 54 |     /// 配置
[INFO] [stdout] 55 |     config: SchedulerConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 56 |     /// 所有处理器
[INFO] [stdout] 57 |     processors: Vec<Arc<Processor>>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 58 |     /// 所有工作线程
[INFO] [stdout] 59 |     machines: RwLock<Vec<Arc<Machine>>>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 60 |     /// 全局运行队列
[INFO] [stdout] 61 |     global_queue: GlobalQueue,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 62 |     /// 空闲处理器列表
[INFO] [stdout] 63 |     idle_processors: Mutex<Vec<usize>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 64 |     /// 空闲处理器数量
[INFO] [stdout] 65 |     idle_count: AtomicUsize,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     start_time: Instant,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 74 |     /// 当前执行的字节码
[INFO] [stdout] 75 |     chunk: RwLock<Option<Arc<Chunk>>>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 76 |     /// 协程执行回调
[INFO] [stdout] 77 |     executor: RwLock<Option<Box<dyn Fn(&Goroutine) + Send + Sync>>>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/runtime/scheduler.rs:115:12
[INFO] [stdout]     |
[INFO] [stdout]  80 | impl Scheduler {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn set_chunk(&self, chunk: Arc<Chunk>) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn chunk(&self) -> Option<Arc<Chunk>> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn set_executor<F>(&self, executor: F)
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn start(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     pub fn stop(&self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub fn spawn(&self, func: Arc<Function>, args: Vec<Value>) -> Option<GoId> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     pub fn schedule(&self, g: Arc<Goroutine>) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 233 |     pub fn get_from_global(&self) -> Option<Arc<Goroutine>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     pub fn get_batch_from_global(&self) -> Vec<Arc<Goroutine>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub fn steal_work(&self, thief: &Processor) -> Option<Arc<Goroutine>> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     pub fn steal_work_batch(&self, thief: &Processor, batch_size: usize) -> Vec<Arc<Goroutine>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 318 |     fn get_idle_processor(&self) -> Option<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 323 |     fn mark_processor_busy(&self, idx: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 330 |     pub fn mark_processor_idle(&self, idx: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 339 |     fn wake_machine(&self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 350 |     pub fn execute_goroutine(&self, g: &Goroutine) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 357 |     pub fn finish_goroutine(&self, _g: &Goroutine) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 362 |     pub fn yield_goroutine(&self, g: Arc<Goroutine>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 368 |     pub fn park_goroutine(&self, g: &Goroutine) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 373 |     pub fn unpark_goroutine(&self, g: Arc<Goroutine>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 379 |     pub fn should_preempt(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 |     pub fn elapsed(&self) -> std::time::Duration {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 392 |     pub fn num_processors(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 397 |     pub fn processor(&self, idx: usize) -> Option<&Arc<Processor>> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 403 |     pub fn global_queue_len(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 408 |     pub fn stats(&self) -> SchedulerStats {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SchedulerStats` is never constructed
[INFO] [stdout]    --> src/runtime/scheduler.rs:436:12
[INFO] [stdout]     |
[INFO] [stdout] 436 | pub struct SchedulerStats {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ChannelStatus` is never used
[INFO] [stdout]   --> src/runtime/channel.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum ChannelStatus {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `goroutine` and `value` are never read
[INFO] [stdout]   --> src/runtime/channel.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | struct Waiter {
[INFO] [stdout]    |        ------ fields in this struct
[INFO] [stdout] 27 |     /// 等待的协程
[INFO] [stdout] 28 |     goroutine: Arc<Goroutine>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 29 |     /// 发送的值（仅用于发送等待）
[INFO] [stdout] 30 |     value: Option<Value>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `send_waiters` is never read
[INFO] [stdout]   --> src/runtime/channel.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Channel {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 44 |     send_waiters: Mutex<VecDeque<Waiter>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `id`, `capacity`, `is_empty`, `send_waiters_count`, and `recv_waiters_count` are never used
[INFO] [stdout]    --> src/runtime/channel.rs:76:12
[INFO] [stdout]     |
[INFO] [stdout]  54 | impl Channel {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  76 |     pub fn id(&self) -> u64 {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     pub fn capacity(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub fn send_waiters_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 237 |     pub fn recv_waiters_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TypedChannel` is never constructed
[INFO] [stdout]    --> src/runtime/channel.rs:263:12
[INFO] [stdout]     |
[INFO] [stdout] 263 | pub struct TypedChannel<T> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/runtime/channel.rs:270:12
[INFO] [stdout]     |
[INFO] [stdout] 268 | impl<T: Into<Value> + TryFrom<Value>> TypedChannel<T> {
[INFO] [stdout]     | ----------------------------------------------------- associated items in this implementation
[INFO] [stdout] 269 |     /// 创建无缓冲 Channel
[INFO] [stdout] 270 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 278 |     pub fn with_capacity(capacity: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 286 |     pub fn send(&self, value: T) -> Result<(), T> 
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 297 |     pub fn try_send(&self, value: T) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 302 |     pub fn receive(&self) -> Option<T> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 307 |     pub fn try_receive(&self) -> Option<T> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 312 |     pub fn close(&self) -> bool {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 317 |     pub fn is_closed(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/runtime/channel.rs:356:20
[INFO] [stdout]     |
[INFO] [stdout] 356 |     ReceivedClosed(usize),
[INFO] [stdout]     |     -------------- ^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SelectResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 356 -     ReceivedClosed(usize),
[INFO] [stdout] 356 +     ReceivedClosed(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `try_select` is never used
[INFO] [stdout]    --> src/runtime/channel.rs:411:8
[INFO] [stdout]     |
[INFO] [stdout] 411 | pub fn try_select(cases: &[SelectCase]) -> Option<SelectResult> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `select_timeout` is never used
[INFO] [stdout]    --> src/runtime/channel.rs:418:8
[INFO] [stdout]     |
[INFO] [stdout] 418 | pub fn select_timeout(cases: &[SelectCase], timeout: std::time::Duration) -> Option<SelectResult> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `return_ip`, `base_slot`, and `is_method_call` are never read
[INFO] [stdout]   --> src/runtime/context.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct CallFrameSnapshot {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] 10 |     /// 返回地址
[INFO] [stdout] 11 |     pub return_ip: u32,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 12 |     /// 栈基址
[INFO] [stdout] 13 |     pub base_slot: u16,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 14 |     /// 是否是方法调用
[INFO] [stdout] 15 |     pub is_method_call: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CallFrameSnapshot` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `current_base`, `value_stack`, and `call_frames` are never read
[INFO] [stdout]   --> src/runtime/context.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct VMState {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub current_base: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 25 |     /// 值栈
[INFO] [stdout] 26 |     pub value_stack: Vec<Value>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 27 |     /// 调用帧栈
[INFO] [stdout] 28 |     pub call_frames: Vec<CallFrameSnapshot>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VMState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]   --> src/runtime/context.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl VMState {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn reset(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `started`, `finished`, and `waiting_on` are never read
[INFO] [stdout]   --> src/runtime/context.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub struct Context {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub started: bool,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 66 |     /// 协程是否已完成
[INFO] [stdout] 67 |     pub finished: bool,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 68 |     /// 等待的资源（Channel ID 等）
[INFO] [stdout] 69 |     pub waiting_on: Option<WaitReason>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Context` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/runtime/context.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub enum WaitReason {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 75 |     /// 等待 Channel 发送
[INFO] [stdout] 76 |     ChannelSend(u64),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 77 |     /// 等待 Channel 接收
[INFO] [stdout] 78 |     ChannelReceive(u64),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 79 |     /// 等待 Mutex
[INFO] [stdout] 80 |     Mutex(u64),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 81 |     /// 等待 WaitGroup
[INFO] [stdout] 82 |     WaitGroup(u64),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 83 |     /// 等待定时器
[INFO] [stdout] 84 |     Timer(u64),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 85 |     /// 等待 IO
[INFO] [stdout] 86 |     IO,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 87 |     /// 主动让出
[INFO] [stdout] 88 |     Yield,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WaitReason` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `mark_started`, `mark_finished`, `is_waiting`, `wait_for`, `clear_wait`, and `reset` are never used
[INFO] [stdout]    --> src/runtime/context.rs:110:12
[INFO] [stdout]     |
[INFO] [stdout]  91 | impl Context {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn mark_started(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn mark_finished(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn is_waiting(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn wait_for(&mut self, reason: WaitReason) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn clear_wait(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ExecuteResult` is never used
[INFO] [stdout]   --> src/runtime/coroutine_vm.rs:20:10
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub enum ExecuteResult {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CoroutineVM` is never constructed
[INFO] [stdout]   --> src/runtime/coroutine_vm.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct CoroutineVM {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `set_time_slice`, `init_from_goroutine`, `save_to_goroutine`, `execute`, and `execute_to_completion` are never used
[INFO] [stdout]    --> src/runtime/coroutine_vm.rs:45:12
[INFO] [stdout]     |
[INFO] [stdout]  43 | impl CoroutineVM {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout]  44 |     /// 创建新的协程 VM
[INFO] [stdout]  45 |     pub fn new(chunk: Arc<Chunk>, locale: Locale) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  54 |     pub fn set_time_slice(&mut self, instructions: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub fn init_from_goroutine(&mut self, g: &Goroutine) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |     pub fn save_to_goroutine(&self, g: &Goroutine) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn execute(&mut self, g: &Goroutine) -> ExecuteResult {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn execute_to_completion(&mut self, g: &Goroutine) -> ExecuteResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `VMCoroutineExt` is never used
[INFO] [stdout]    --> src/runtime/coroutine_vm.rs:198:11
[INFO] [stdout]     |
[INFO] [stdout] 198 | pub trait VMCoroutineExt {
[INFO] [stdout]     |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PreemptConfig` is never constructed
[INFO] [stdout]   --> src/runtime/preempt.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct PreemptConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `configure` is never used
[INFO] [stdout]   --> src/runtime/preempt.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | impl PreemptState {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn configure(&self, config: &PreemptConfig) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `reset`, `force_preempt`, `elapsed`, and `instruction_count` are never used
[INFO] [stdout]    --> src/runtime/preempt.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout]  90 | impl PreemptTracker {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn force_preempt(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn elapsed(&self) -> Duration {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     pub fn instruction_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init` is never used
[INFO] [stdout]    --> src/runtime/preempt.rs:205:12
[INFO] [stdout]     |
[INFO] [stdout] 205 |     pub fn init() {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `request_preempt` is never used
[INFO] [stdout]    --> src/runtime/preempt.rs:211:12
[INFO] [stdout]     |
[INFO] [stdout] 211 |     pub fn request_preempt(_thread_id: u64) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `locale`, `num_workers`, and `time_slice_us` are never read
[INFO] [stdout]   --> src/runtime/runtime.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct RuntimeConfig {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 24 |     /// 语言环境
[INFO] [stdout] 25 |     pub locale: Locale,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub num_workers: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 30 |     /// 时间片大小（微秒）
[INFO] [stdout] 31 |     pub time_slice_us: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RuntimeConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Runtime` is never constructed
[INFO] [stdout]   --> src/runtime/runtime.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct Runtime {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/runtime/runtime.rs:65:12
[INFO] [stdout]     |
[INFO] [stdout]  63 | impl Runtime {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  64 |     /// 创建新的运行时
[INFO] [stdout]  65 |     pub fn new(chunk: Arc<Chunk>, config: RuntimeConfig) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |     pub fn with_chunk(chunk: Arc<Chunk>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     pub fn run(&self) -> Result<(), RuntimeError> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn spawn(&self, func: Arc<Function>, args: Vec<Value>) -> Option<u64> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn create_channel(&self, capacity: usize) -> Arc<Channel> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn is_running(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub fn stats(&self) -> super::scheduler::SchedulerStats {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RuntimeHandle` is never constructed
[INFO] [stdout]    --> src/runtime/runtime.rs:161:12
[INFO] [stdout]     |
[INFO] [stdout] 161 | pub struct RuntimeHandle {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `go`, and `yield_now` are never used
[INFO] [stdout]    --> src/runtime/runtime.rs:169:12
[INFO] [stdout]     |
[INFO] [stdout] 167 | impl RuntimeHandle {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 168 |     /// 创建新的运行时句柄
[INFO] [stdout] 169 |     pub fn new(chunk: Arc<Chunk>, locale: Locale) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn go(&self, func: Arc<Function>, args: Vec<Value>) -> Option<u64> {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub fn yield_now(&self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_runtime_handle` is never used
[INFO] [stdout]    --> src/runtime/runtime.rs:194:8
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub fn set_runtime_handle(handle: RuntimeHandle) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `with_runtime_handle` is never used
[INFO] [stdout]    --> src/runtime/runtime.rs:201:8
[INFO] [stdout]     |
[INFO] [stdout] 201 | pub fn with_runtime_handle<F, R>(f: F) -> Option<R>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `initialized` are never read
[INFO] [stdout]   --> src/typechecker/environment.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct VariableInfo {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 11 |     /// 变量名
[INFO] [stdout] 12 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub initialized: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VariableInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `type_params`, `is_method`, and `owner_type` are never read
[INFO] [stdout]   --> src/typechecker/environment.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct FunctionInfo {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 24 |     /// 函数名
[INFO] [stdout] 25 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 26 |     /// 泛型参数
[INFO] [stdout] 27 |     pub type_params: Vec<GenericParam>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub is_method: bool,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 38 |     /// 所属类型（如果是方法）
[INFO] [stdout] 39 |     pub owner_type: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FunctionInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `type_params`, `interfaces`, `traits`, `static_fields`, and `static_methods` are never read
[INFO] [stdout]   --> src/typechecker/environment.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct ClassInfo {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 45 |     /// 类名
[INFO] [stdout] 46 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 47 |     /// 泛型参数
[INFO] [stdout] 48 |     pub type_params: Vec<GenericParam>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub interfaces: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 53 |     /// 使用的 Trait
[INFO] [stdout] 54 |     pub traits: Vec<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub static_fields: HashMap<String, FieldInfo>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 61 |     /// 静态方法
[INFO] [stdout] 62 |     pub static_methods: HashMap<String, FunctionInfo>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ClassInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `type_params`, and `interfaces` are never read
[INFO] [stdout]   --> src/typechecker/environment.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub struct StructInfo {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 70 |     /// 结构体名
[INFO] [stdout] 71 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 72 |     /// 泛型参数
[INFO] [stdout] 73 |     pub type_params: Vec<GenericParam>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 74 |     /// 实现的接口
[INFO] [stdout] 75 |     pub interfaces: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `StructInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `is_mutable`, and `visibility` are never read
[INFO] [stdout]   --> src/typechecker/environment.rs:86:9
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub struct FieldInfo {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 85 |     /// 字段名
[INFO] [stdout] 86 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub is_mutable: bool,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 91 |     /// 可见性
[INFO] [stdout] 92 |     pub visibility: Visibility,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FieldInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `type_params`, and `super_traits` are never read
[INFO] [stdout]    --> src/typechecker/environment.rs:108:9
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub struct TraitInfo {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 107 |     /// Trait 名
[INFO] [stdout] 108 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 109 |     /// 泛型参数
[INFO] [stdout] 110 |     pub type_params: Vec<GenericParam>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 111 |     /// 父 Trait
[INFO] [stdout] 112 |     pub super_traits: Vec<TypeBound>,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TraitInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `type_params`, and `super_interfaces` are never read
[INFO] [stdout]    --> src/typechecker/environment.rs:123:9
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub struct InterfaceInfo {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] 122 |     /// 接口名
[INFO] [stdout] 123 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 124 |     /// 泛型参数
[INFO] [stdout] 125 |     pub type_params: Vec<GenericParam>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 126 |     /// 父接口
[INFO] [stdout] 127 |     pub super_interfaces: Vec<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `InterfaceInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `variants`, and `methods` are never read
[INFO] [stdout]    --> src/typechecker/environment.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub struct EnumInfo {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] 135 |     /// 枚举名
[INFO] [stdout] 136 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 137 |     /// 变体
[INFO] [stdout] 138 |     pub variants: HashMap<String, EnumVariantInfo>,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 139 |     /// 方法
[INFO] [stdout] 140 |     pub methods: HashMap<String, FunctionInfo>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `EnumInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `value_type`, and `fields` are never read
[INFO] [stdout]    --> src/typechecker/environment.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub struct EnumVariantInfo {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] 146 |     /// 变体名
[INFO] [stdout] 147 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 148 |     /// 关联值类型（如果有）
[INFO] [stdout] 149 |     pub value_type: Option<Type>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 150 |     /// 关联数据字段
[INFO] [stdout] 151 |     pub fields: Vec<(String, Type)>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `EnumVariantInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/typechecker/environment.rs:161:10
[INFO] [stdout]     |
[INFO] [stdout] 161 |     Enum(EnumInfo),
[INFO] [stdout]     |     ---- ^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TypeInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 161 -     Enum(EnumInfo),
[INFO] [stdout] 161 +     Enum(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `actual_type` are never read
[INFO] [stdout]    --> src/typechecker/environment.rs:164:9
[INFO] [stdout]     |
[INFO] [stdout] 163 |     Alias {
[INFO] [stdout]     |     ----- fields in this variant
[INFO] [stdout] 164 |         name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 165 |         actual_type: Type,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TypeInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_type_param` is never used
[INFO] [stdout]    --> src/typechecker/environment.rs:218:12
[INFO] [stdout]     |
[INFO] [stdout] 182 | impl TypeScope {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn get_type_param(&self, name: &str) -> Option<&GenericParam> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `trait_impls` is never read
[INFO] [stdout]    --> src/typechecker/environment.rs:235:5
[INFO] [stdout]     |
[INFO] [stdout] 225 | pub struct TypeEnvironment {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 235 |     trait_impls: Vec<TraitImpl>,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TypeEnvironment` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `lookup_type_param`, `register_trait_impl`, `find_trait_impl`, `type_matches`, `set_this_type`, and `resolve_type` are never used
[INFO] [stdout]    --> src/typechecker/environment.rs:303:12
[INFO] [stdout]     |
[INFO] [stdout] 242 | impl TypeEnvironment {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 303 |     pub fn lookup_type_param(&self, name: &str) -> Option<&GenericParam> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 352 |     pub fn register_trait_impl(&mut self, impl_: TraitImpl) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 357 |     pub fn find_trait_impl(&self, ty: &Type, trait_name: &str) -> Option<&TraitImpl> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 364 |     fn type_matches(&self, pattern: &Type, actual: &Type) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 370 |     pub fn set_this_type(&mut self, ty: Option<Type>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 390 |     pub fn resolve_type(&self, name: &str) -> Option<Type> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `UnifyResult` is never used
[INFO] [stdout]   --> src/typechecker/unify.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub type UnifyResult = Result<Substitution, TypeError>;
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Unifier` is never constructed
[INFO] [stdout]   --> src/typechecker/unify.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Unifier {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/typechecker/unify.rs:21:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl Unifier {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  20 |     /// 创建新的统一器
[INFO] [stdout]  21 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  28 |     pub fn with_substitution(substitution: Substitution) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  33 |     pub fn unify(&mut self, t1: &Type, t2: &Type, span: Span) -> UnifyResult {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  47 |     fn unify_internal(&mut self, t1: &Type, t2: &Type, span: Span) -> UnifyResult {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     fn unify_var(&mut self, var: &TypeVar, ty: &Type, span: Span) -> UnifyResult {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     fn occurs_in(&self, var: &TypeVar, ty: &Type) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 271 |     pub fn apply(&self, ty: &Type) -> Type {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn get_substitution(&self) -> &Substitution {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 281 |     pub fn into_substitution(self) -> Substitution {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unify` is never used
[INFO] [stdout]    --> src/typechecker/unify.rs:293:8
[INFO] [stdout]     |
[INFO] [stdout] 293 | pub fn unify(t1: &Type, t2: &Type, span: Span) -> UnifyResult {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unify_with_subst` is never used
[INFO] [stdout]    --> src/typechecker/unify.rs:299:8
[INFO] [stdout]     |
[INFO] [stdout] 299 | pub fn unify_with_subst(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Equal`, `Subtype`, `TraitBound`, and `Instantiate` are never constructed
[INFO] [stdout]   --> src/typechecker/constraint.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum ConstraintKind {
[INFO] [stdout]    |          -------------- variants in this enum
[INFO] [stdout] 13 |     /// 类型相等约束 T1 = T2
[INFO] [stdout] 14 |     Equal(Type, Type),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 15 |     /// 子类型约束 T1 <: T2
[INFO] [stdout] 16 |     Subtype {
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     TraitBound {
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     Instantiate {
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ConstraintKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `reason` is never read
[INFO] [stdout]   --> src/typechecker/constraint.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct Constraint {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub reason: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Constraint` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new`, `equal`, `subtype`, and `trait_bound` are never used
[INFO] [stdout]   --> src/typechecker/constraint.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | impl Constraint {
[INFO] [stdout]    | --------------- associated functions in this implementation
[INFO] [stdout] 44 |     /// 创建新的约束
[INFO] [stdout] 45 |     pub fn new(kind: ConstraintKind, span: Span, reason: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn equal(t1: Type, t2: Type, span: Span, reason: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn subtype(sub: Type, super_: Type, span: Span, reason: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn trait_bound(ty: Type, bound: TypeBound, span: Span, reason: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_constraint`, `add_constraints`, `get_substitution`, and `get_var_constraints` are never used
[INFO] [stdout]    --> src/typechecker/constraint.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout]  89 | impl ConstraintSolver {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn add_constraint(&mut self, constraint: Constraint) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn add_constraints(&mut self, constraints: Vec<Constraint>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 401 |     pub fn get_substitution(&self) -> &Substitution {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 406 |     pub fn get_var_constraints(&self, var_id: u64) -> Option<&Vec<TypeBound>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/typechecker/error.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum TypeErrorKind {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 18 |     UnknownType(String),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     UndefinedFunction(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     ConstraintNotSatisfied {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     CyclicTypeDependency(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 69 |     /// 不可空类型赋值 null
[INFO] [stdout] 70 |     NullNotAllowed(Type),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 71 |     /// 无效的类型转换
[INFO] [stdout] 72 |     InvalidCast {
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     UnreachableCode,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TypeErrorKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `notes` is never read
[INFO] [stdout]    --> src/typechecker/error.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub struct TypeError {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub notes: Vec<String>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TypeError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `with_note`, `undefined_function`, and `constraint_not_satisfied` are never used
[INFO] [stdout]    --> src/typechecker/error.rs:142:12
[INFO] [stdout]     |
[INFO] [stdout] 131 | impl TypeError {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn with_note(mut self, note: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn undefined_function(name: impl Into<String>, span: Span) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub fn constraint_not_satisfied(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_context` is never used
[INFO] [stdout]    --> src/typechecker/checker.rs:351:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl TypeChecker {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 351 |     pub fn set_context(&mut self, context: CompileContext) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `from_types` are never used
[INFO] [stdout]   --> src/typechecker/monomorphize.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl MonoKey {
[INFO] [stdout]    | ------------ associated functions in this implementation
[INFO] [stdout] 21 |     /// 创建新的单态化键
[INFO] [stdout] 22 |     pub fn new(base_name: impl Into<String>, type_args: Vec<Type>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn from_types(base_name: impl Into<String>, type_args: &[Type]) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mangle_type` is never used
[INFO] [stdout]   --> src/typechecker/monomorphize.rs:54:4
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn mangle_type(ty: &Type) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/typechecker/monomorphize.rs:99:9
[INFO] [stdout]     |
[INFO] [stdout]  97 | pub struct MonomorphizedClass {
[INFO] [stdout]     |            ------------------ fields in this struct
[INFO] [stdout]  98 |     /// 单态化后的名称
[INFO] [stdout]  99 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 100 |     /// 原始名称
[INFO] [stdout] 101 |     pub original_name: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 102 |     /// 类型替换表
[INFO] [stdout] 103 |     pub substitution: Substitution,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 104 |     /// 字段（类型已替换）
[INFO] [stdout] 105 |     pub fields: Vec<MonomorphizedField>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 106 |     /// 方法（类型已替换）
[INFO] [stdout] 107 |     pub methods: Vec<MonomorphizedMethod>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 108 |     /// 父类（如果有）
[INFO] [stdout] 109 |     pub parent: Option<String>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 110 |     /// 是否是抽象类
[INFO] [stdout] 111 |     pub is_abstract: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MonomorphizedClass` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `original_name`, `substitution`, `fields`, and `methods` are never read
[INFO] [stdout]    --> src/typechecker/monomorphize.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub struct MonomorphizedStruct {
[INFO] [stdout]     |            ------------------- fields in this struct
[INFO] [stdout] 117 |     /// 单态化后的名称
[INFO] [stdout] 118 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 119 |     /// 原始名称
[INFO] [stdout] 120 |     pub original_name: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 121 |     /// 类型替换表
[INFO] [stdout] 122 |     pub substitution: Substitution,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 123 |     /// 字段（类型已替换）
[INFO] [stdout] 124 |     pub fields: Vec<MonomorphizedField>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 125 |     /// 方法（类型已替换）
[INFO] [stdout] 126 |     pub methods: Vec<MonomorphizedMethod>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MonomorphizedStruct` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `ty`, and `is_mutable` are never read
[INFO] [stdout]    --> src/typechecker/monomorphize.rs:132:9
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub struct MonomorphizedField {
[INFO] [stdout]     |            ------------------ fields in this struct
[INFO] [stdout] 132 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 133 |     pub ty: Type,
[INFO] [stdout]     |         ^^
[INFO] [stdout] 134 |     pub is_mutable: bool,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MonomorphizedField` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `param_types`, `param_names`, `return_type`, and `is_static` are never read
[INFO] [stdout]    --> src/typechecker/monomorphize.rs:140:9
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub struct MonomorphizedMethod {
[INFO] [stdout]     |            ------------------- fields in this struct
[INFO] [stdout] 140 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 141 |     pub param_types: Vec<Type>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 142 |     pub param_names: Vec<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 143 |     pub return_type: Type,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 144 |     pub is_static: bool,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MonomorphizedMethod` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `original_name`, `substitution`, `param_types`, `param_names`, and `return_type` are never read
[INFO] [stdout]    --> src/typechecker/monomorphize.rs:151:9
[INFO] [stdout]     |
[INFO] [stdout] 149 | pub struct MonomorphizedFunction {
[INFO] [stdout]     |            --------------------- fields in this struct
[INFO] [stdout] 150 |     /// 单态化后的名称
[INFO] [stdout] 151 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 152 |     /// 原始名称
[INFO] [stdout] 153 |     pub original_name: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 154 |     /// 类型替换表
[INFO] [stdout] 155 |     pub substitution: Substitution,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 156 |     /// 参数类型
[INFO] [stdout] 157 |     pub param_types: Vec<Type>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 158 |     /// 参数名
[INFO] [stdout] 159 |     pub param_names: Vec<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 160 |     /// 返回类型
[INFO] [stdout] 161 |     pub return_type: Type,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MonomorphizedFunction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/typechecker/monomorphize.rs:192:5
[INFO] [stdout]     |
[INFO] [stdout] 191 | struct ClassDefInfo {
[INFO] [stdout]     |        ------------ field in this struct
[INFO] [stdout] 192 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ClassDefInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/typechecker/monomorphize.rs:203:5
[INFO] [stdout]     |
[INFO] [stdout] 202 | struct StructDefInfo {
[INFO] [stdout]     |        ------------- field in this struct
[INFO] [stdout] 203 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StructDefInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/typechecker/monomorphize.rs:212:5
[INFO] [stdout]     |
[INFO] [stdout] 211 | struct FunctionDefInfo {
[INFO] [stdout]     |        --------------- field in this struct
[INFO] [stdout] 212 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FunctionDefInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/typechecker/monomorphize.rs:317:12
[INFO] [stdout]     |
[INFO] [stdout] 229 | impl Monomorphizer {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 317 |     pub fn request_class(&mut self, name: &str, type_args: Vec<Type>) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 335 |     pub fn request_struct(&mut self, name: &str, type_args: Vec<Type>) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 351 |     pub fn request_function(&mut self, name: &str, type_args: Vec<Type>) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 502 |     pub fn get_monomorphized_class(&self, key: &MonoKey) -> Option<&MonomorphizedClass> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 507 |     pub fn get_monomorphized_struct(&self, key: &MonoKey) -> Option<&MonomorphizedStruct> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 512 |     pub fn get_monomorphized_function(&self, key: &MonoKey) -> Option<&MonomorphizedFunction> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 517 |     pub fn all_classes(&self) -> impl Iterator<Item = &MonomorphizedClass> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 522 |     pub fn all_structs(&self) -> impl Iterator<Item = &MonomorphizedStruct> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 527 |     pub fn all_functions(&self) -> impl Iterator<Item = &MonomorphizedFunction> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b1`
[INFO] [stdout]   --> src/typechecker/unify.rs:63:48
[INFO] [stdout]    |
[INFO] [stdout] 63 |             (TypeParameter { name: n1, bounds: b1 }, TypeParameter { name: n2, bounds: b2 }) => {
[INFO] [stdout]    |                                                ^^ help: if this is intentional, prefix it with an underscore: `_b1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b2`
[INFO] [stdout]   --> src/typechecker/unify.rs:63:88
[INFO] [stdout]    |
[INFO] [stdout] 63 |             (TypeParameter { name: n1, bounds: b1 }, TypeParameter { name: n2, bounds: b2 }) => {
[INFO] [stdout]    |                                                                                        ^^ help: if this is intentional, prefix it with an underscore: `_b2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `generic`
[INFO] [stdout]    --> src/typechecker/constraint.rs:184:43
[INFO] [stdout]     |
[INFO] [stdout] 184 |             ConstraintKind::Instantiate { generic, args } => {
[INFO] [stdout]     |                                           ^^^^^^^ help: try ignoring the field: `generic: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]    --> src/typechecker/constraint.rs:184:52
[INFO] [stdout]     |
[INFO] [stdout] 184 |             ConstraintKind::Instantiate { generic, args } => {
[INFO] [stdout]     |                                                    ^^^^ help: try ignoring the field: `args: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `main_signature_valid` is assigned to, but never used
[INFO] [stdout]    --> src/typechecker/checker.rs:479:13
[INFO] [stdout]     |
[INFO] [stdout] 479 |         let mut main_signature_valid = true;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_main_signature_valid` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `main_signature_valid` is never read
[INFO] [stdout]    --> src/typechecker/checker.rs:486:25
[INFO] [stdout]     |
[INFO] [stdout] 486 |                         main_signature_valid = false;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/typechecker/checker.rs:551:28
[INFO] [stdout]     |
[INFO] [stdout] 551 |                 if let Err(e) = self.env.register_type(name.clone(), TypeInfo::Struct(info)) {
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/typechecker/checker.rs:571:28
[INFO] [stdout]     |
[INFO] [stdout] 571 |                 if let Err(e) = self.env.register_type(name.clone(), TypeInfo::Class(info)) {
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/typechecker/checker.rs:585:28
[INFO] [stdout]     |
[INFO] [stdout] 585 |                 if let Err(e) = self.env.register_type(name.clone(), TypeInfo::Interface(info)) {
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/typechecker/checker.rs:602:28
[INFO] [stdout]     |
[INFO] [stdout] 602 |                 if let Err(e) = self.env.register_type(name.clone(), TypeInfo::Trait(info)) {
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/typechecker/checker.rs:623:28
[INFO] [stdout]     |
[INFO] [stdout] 623 |                 if let Err(e) = self.env.register_type(name.clone(), TypeInfo::Enum(info)) {
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/typechecker/checker.rs:631:28
[INFO] [stdout]     |
[INFO] [stdout] 631 |                 if let Err(e) = self.env.register_type(
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/typechecker/checker.rs:671:30
[INFO] [stdout]     |
[INFO] [stdout] 671 |             Stmt::ClassDef { name, interfaces, traits, methods, span, .. } => {
[INFO] [stdout]     |                              ^^^^ help: try ignoring the field: `name: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/typechecker/checker.rs:766:31
[INFO] [stdout]     |
[INFO] [stdout] 766 |                     .map_err(|e| TypeError::new(TypeErrorKind::DuplicateDefinition(name.clone()), *span))?;
[INFO] [stdout]     |                               ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/typechecker/checker.rs:749:31
[INFO] [stdout]     |
[INFO] [stdout] 749 |                     .map_err(|e| TypeError::new(TypeErrorKind::DuplicateDefinition(name.clone()), *span))?;
[INFO] [stdout]     |                               ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]    --> src/typechecker/checker.rs:721:38
[INFO] [stdout]     |
[INFO] [stdout] 721 |             Stmt::Expression { expr, span } => {
[INFO] [stdout]     |                                      ^^^^ help: try ignoring the field: `span: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]    --> src/typechecker/checker.rs:725:33
[INFO] [stdout]     |
[INFO] [stdout] 725 |             Stmt::Print { expr, span, .. } => {
[INFO] [stdout]     |                                 ^^^^ help: try ignoring the field: `span: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/typechecker/checker.rs:905:27
[INFO] [stdout]     |
[INFO] [stdout] 905 |             Stmt::FnDef { name, type_params, params, return_type, body, span, .. } => {
[INFO] [stdout]     |                           ^^^^ help: try ignoring the field: `name: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]    --> src/typechecker/checker.rs:975:34
[INFO] [stdout]     |
[INFO] [stdout] 975 |             Stmt::Throw { value, span } => {
[INFO] [stdout]     |                                  ^^^^ help: try ignoring the field: `span: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]     --> src/typechecker/checker.rs:1218:27
[INFO] [stdout]      |
[INFO] [stdout] 1218 |             Expr::Range { start, end, inclusive, span } => {
[INFO] [stdout]      |                           ^^^^^ help: try ignoring the field: `start: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end`
[INFO] [stdout]     --> src/typechecker/checker.rs:1218:34
[INFO] [stdout]      |
[INFO] [stdout] 1218 |             Expr::Range { start, end, inclusive, span } => {
[INFO] [stdout]      |                                  ^^^ help: try ignoring the field: `end: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inclusive`
[INFO] [stdout]     --> src/typechecker/checker.rs:1218:39
[INFO] [stdout]      |
[INFO] [stdout] 1218 |             Expr::Range { start, end, inclusive, span } => {
[INFO] [stdout]      |                                       ^^^^^^^^^ help: try ignoring the field: `inclusive: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]     --> src/typechecker/checker.rs:1218:50
[INFO] [stdout]      |
[INFO] [stdout] 1218 |             Expr::Range { start, end, inclusive, span } => {
[INFO] [stdout]      |                                                  ^^^^ help: try ignoring the field: `span: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]     --> src/typechecker/checker.rs:1223:56
[INFO] [stdout]      |
[INFO] [stdout] 1223 |             Expr::Closure { params, return_type, body, span } => {
[INFO] [stdout]      |                                                        ^^^^ help: try ignoring the field: `span: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `force`
[INFO] [stdout]     --> src/typechecker/checker.rs:1373:45
[INFO] [stdout]      |
[INFO] [stdout] 1373 |             Expr::Cast { expr, target_type, force, span } => {
[INFO] [stdout]      |                                             ^^^^^ help: try ignoring the field: `force: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]     --> src/typechecker/checker.rs:1373:52
[INFO] [stdout]      |
[INFO] [stdout] 1373 |             Expr::Cast { expr, target_type, force, span } => {
[INFO] [stdout]      |                                                    ^^^^ help: try ignoring the field: `span: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr_ty`
[INFO] [stdout]     --> src/typechecker/checker.rs:1374:21
[INFO] [stdout]      |
[INFO] [stdout] 1374 |                 let expr_ty = self.infer_expr(expr)?;
[INFO] [stdout]      |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expr_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `check_type`
[INFO] [stdout]     --> src/typechecker/checker.rs:1379:37
[INFO] [stdout]      |
[INFO] [stdout] 1379 |             Expr::TypeCheck { expr, check_type, span } => {
[INFO] [stdout]      |                                     ^^^^^^^^^^ help: try ignoring the field: `check_type: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]     --> src/typechecker/checker.rs:1379:49
[INFO] [stdout]      |
[INFO] [stdout] 1379 |             Expr::TypeCheck { expr, check_type, span } => {
[INFO] [stdout]      |                                                 ^^^^ help: try ignoring the field: `span: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]     --> src/typechecker/checker.rs:1384:30
[INFO] [stdout]      |
[INFO] [stdout] 1384 |             Expr::Go { call, span } => {
[INFO] [stdout]      |                              ^^^^ help: try ignoring the field: `span: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `main_file`
[INFO] [stdout]    --> src/main.rs:333:5
[INFO] [stdout]     |
[INFO] [stdout] 333 |     main_file: Option<&Path>,
[INFO] [stdout]     |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_main_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_compile_context` is never used
[INFO] [stdout]    --> src/main.rs:394:4
[INFO] [stdout]     |
[INFO] [stdout] 394 | fn build_compile_context(file_path: &Path) -> CompileContext {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Ja` is never constructed
[INFO] [stdout]   --> src/i18n/mod.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum Locale {
[INFO] [stdout]    |          ------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 19 |     Ja,
[INFO] [stdout]    |     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Locale` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_str`, `code`, `name`, and `from_env` are never used
[INFO] [stdout]   --> src/i18n/mod.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl Locale {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 23 |     /// 从字符串解析语言
[INFO] [stdout] 24 |     pub fn from_str(s: &str) -> Option<Self> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn code(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn name(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn from_env() -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_message_named` is never used
[INFO] [stdout]   --> src/i18n/mod.rs:86:8
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub fn format_message_named(key: &str, locale: Locale, args: &[(&str, &str)]) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/parser/parser.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub enum ParseErrorKind {
[INFO] [stdout]    |          -------------- variants in this enum
[INFO] [stdout] 34 |     /// 意外的 token
[INFO] [stdout] 35 |     UnexpectedToken,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 36 |     /// 期望的 token 未找到
[INFO] [stdout] 37 |     ExpectedToken,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 38 |     /// 意外的文件结束
[INFO] [stdout] 39 |     UnexpectedEof,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     InvalidExpression,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 44 |     /// 重复定义
[INFO] [stdout] 45 |     DuplicateDefinition,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// 无效的赋值目标
[INFO] [stdout] 47 |     InvalidAssignmentTarget,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 48 |     /// 无效的类型
[INFO] [stdout] 49 |     InvalidType,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ParseErrorKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `kind`, `expected`, and `found` are never read
[INFO] [stdout]   --> src/parser/parser.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct ParseError {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub kind: ParseErrorKind,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 61 |     /// 期望的内容（如果有）
[INFO] [stdout] 62 |     pub expected: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 63 |     /// 实际得到的内容
[INFO] [stdout] 64 |     pub found: Option<String>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ParseError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `with_kind`, `expected_token`, `unexpected_token`, `unexpected_eof`, and `with_hint` are never used
[INFO] [stdout]    --> src/parser/parser.rs:83:8
[INFO] [stdout]     |
[INFO] [stdout]  69 | impl ParseError {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  83 |     fn with_kind(message: String, span: Span, kind: ParseErrorKind) -> Self {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     fn expected_token(expected: &str, found: &str, span: Span) -> Self {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     fn unexpected_token(found: &str, context: &str, span: Span) -> Self {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     fn unexpected_eof(context: &str, span: Span) -> Self {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     fn with_hint(mut self, hint: impl Into<String>) -> Self {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `parse_where_clauses`, `parse_single_where_clause`, `synchronize_to`, `report_error`, and `expect_one_of` are never used
[INFO] [stdout]     --> src/parser/parser.rs:1019:8
[INFO] [stdout]      |
[INFO] [stdout]  166 | impl Parser {
[INFO] [stdout]      | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1019 |     fn parse_where_clauses(&mut self) -> Result<Vec<super::ast::WhereClause>, ParseError> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1063 |     fn parse_single_where_clause(&mut self) -> Result<super::ast::WhereClause, ParseError> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3419 |     fn synchronize_to(&mut self, kinds: &[TokenKind]) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3434 |     fn report_error(&mut self, error: ParseError) {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3442 |     fn expect_one_of(&mut self, kinds: &[TokenKind]) -> Result<Token, ParseError> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/vm/vm.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | impl RuntimeError {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 65 |     /// 创建新的运行时错误
[INFO] [stdout] 66 |     pub fn new(message: String, line: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `vtable_registry` and `inline_cache` are never read
[INFO] [stdout]    --> src/vm/vm.rs:141:5
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub struct VM {
[INFO] [stdout]     |            -- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 141 |     vtable_registry: super::vtable::VTableRegistry,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     inline_cache: std::collections::HashMap<(String, String), u16>,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/vm/vm.rs:172:12
[INFO] [stdout]      |
[INFO] [stdout]  152 | impl VM {
[INFO] [stdout]      | ------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  172 |     pub fn with_preempt(chunk: Arc<Chunk>, locale: Locale, preempt_flag: Arc<std::sync::atomic::AtomicBool>) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  190 |     pub fn set_preempt_flag(&mut self, flag: Arc<std::sync::atomic::AtomicBool>) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  204 |     pub fn request_preempt(&self) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  221 |     pub fn lookup_method_cached(&mut self, type_name: &str, method_name: &str) -> Option<u16> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  242 |     pub fn clear_inline_cache(&mut self) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  251 |     pub fn scan_gc_roots<F>(&self, mut callback: F) 
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  267 |     pub fn stack_roots(&self) -> impl std::iter::Iterator<Item = &Value> {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  272 |     pub fn stack_depth(&self) -> usize {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  277 |     pub fn frame_count(&self) -> usize {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6124 |     pub fn ip(&self) -> usize {
[INFO] [stdout]      |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 6130 |     pub fn set_ip_value(&mut self, ip: usize) {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6136 |     pub fn current_base(&self) -> usize {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6142 |     pub fn set_current_base(&mut self, base: usize) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6147 |     pub fn save_stack(&self) -> Vec<Value> {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6152 |     pub fn restore_stack(&mut self, stack: &[Value]) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6158 |     pub fn save_frames(&self) -> Vec<crate::runtime::context::CallFrameSnapshot> {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6167 |     pub fn restore_frames(&mut self, frames: &[crate::runtime::context::CallFrameSnapshot]) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6181 |     pub fn push_value(&mut self, value: Value) {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6188 |     pub fn step(&mut self) -> Result<bool, RuntimeError> {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6236 |     fn step_sync(&mut self) -> Result<(), RuntimeError> {
[INFO] [stdout]      |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6484 |     pub fn get_or_create_vtable(&mut self, type_name: &str) -> std::sync::Arc<super::vtable::VTable> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6489 |     pub fn register_vtable(&mut self, vtable: super::vtable::VTable) -> std::sync::Arc<super::vtable::VTable> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6494 |     pub fn value_implements_trait(&self, value: &Value, trait_name: &str) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6513 |     pub fn vtable_dispatch(&mut self, receiver: &Value, method_name: &str, args: Vec<Value>) -> Result<Value, RuntimeError> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6554 |     pub fn init_type_vtable(&mut self, type_name: &str) -> Option<std::sync::Arc<super::vtable::VTable>> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6581 |     pub fn get_runtime_type_info(&self, value: &Value) -> Option<super::vtable::RuntimeTypeInfo> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `func_index` are never read
[INFO] [stdout]   --> src/vm/vtable.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct VTableEntry {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 17 |     /// 方法名
[INFO] [stdout] 18 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 19 |     /// 方法在常量池中的索引
[INFO] [stdout] 20 |     pub func_index: usize,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VTableEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `type_id`, `type_name`, `methods`, `method_slots`, `trait_impls`, and `parent` are never read
[INFO] [stdout]   --> src/vm/vtable.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct VTable {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 26 |     /// 类型 ID
[INFO] [stdout] 27 |     pub type_id: TypeId,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 28 |     /// 类型名称
[INFO] [stdout] 29 |     pub type_name: String,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 30 |     /// 方法表（方法名 -> 函数索引）
[INFO] [stdout] 31 |     pub methods: HashMap<String, MethodIndex>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 32 |     /// 有序的方法列表（用于虚方法调用）
[INFO] [stdout] 33 |     pub method_slots: Vec<VTableEntry>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 34 |     /// 实现的 Trait（trait名 -> TraitVTable）
[INFO] [stdout] 35 |     pub trait_impls: HashMap<String, TraitVTable>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 36 |     /// 父类 VTable（用于继承）
[INFO] [stdout] 37 |     pub parent: Option<Box<VTable>>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VTable` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/vm/vtable.rs:42:12
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl VTable {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout]  41 |     /// 创建新的 VTable
[INFO] [stdout]  42 |     pub fn new(type_id: TypeId, type_name: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  54 |     pub fn with_parent(type_id: TypeId, type_name: impl Into<String>, parent: VTable) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  67 |     pub fn register_method(&mut self, name: impl Into<String>, func_index: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn lookup_method(&self, name: &str) -> Option<MethodIndex> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn get_method_func_index(&self, name: &str) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn get_slot_func_index(&self, slot_index: MethodIndex) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn register_trait_impl(&mut self, trait_name: impl Into<String>, trait_vtable: TraitVTable) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn lookup_trait(&self, trait_name: &str) -> Option<&TraitVTable> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn implements_trait(&self, trait_name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn get_parent_method(&self, name: &str) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `trait_name` and `methods` are never read
[INFO] [stdout]    --> src/vm/vtable.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub struct TraitVTable {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 127 |     /// Trait 名称
[INFO] [stdout] 128 |     pub trait_name: String,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 129 |     /// 方法映射（trait 方法名 -> 实现方法的函数索引）
[INFO] [stdout] 130 |     pub methods: HashMap<String, usize>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TraitVTable` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `register_method`, and `lookup_method` are never used
[INFO] [stdout]    --> src/vm/vtable.rs:135:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | impl TraitVTable {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 134 |     /// 创建新的 TraitVTable
[INFO] [stdout] 135 |     pub fn new(trait_name: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn register_method(&mut self, name: impl Into<String>, func_index: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn lookup_method(&self, name: &str) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `vtables`, `vtables_by_id`, and `next_type_id` are never read
[INFO] [stdout]    --> src/vm/vtable.rs:157:5
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub struct VTableRegistry {
[INFO] [stdout]     |            -------------- fields in this struct
[INFO] [stdout] 156 |     /// 类型名到 VTable 的映射
[INFO] [stdout] 157 |     vtables: HashMap<String, Arc<VTable>>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 158 |     /// 类型 ID 到 VTable 的映射（用于快速查找）
[INFO] [stdout] 159 |     vtables_by_id: HashMap<TypeId, Arc<VTable>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 160 |     /// 下一个类型 ID
[INFO] [stdout] 161 |     next_type_id: TypeId,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `VTableRegistry` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `allocate_type_id`, `register`, `lookup_by_name`, `lookup_by_id`, `get_or_create`, and `create_with_parent` are never used
[INFO] [stdout]    --> src/vm/vtable.rs:175:12
[INFO] [stdout]     |
[INFO] [stdout] 164 | impl VTableRegistry {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn allocate_type_id(&mut self) -> TypeId {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn register(&mut self, vtable: VTable) -> Arc<VTable> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 190 |     pub fn lookup_by_name(&self, name: &str) -> Option<Arc<VTable>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     pub fn lookup_by_id(&self, id: TypeId) -> Option<Arc<VTable>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn get_or_create(&mut self, type_name: &str) -> Arc<VTable> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     pub fn create_with_parent(&mut self, type_name: &str, parent_name: &str) -> Option<Arc<VTable>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RuntimeTypeInfo` is never constructed
[INFO] [stdout]    --> src/vm/vtable.rs:220:12
[INFO] [stdout]     |
[INFO] [stdout] 220 | pub struct RuntimeTypeInfo {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FieldInfo` is never constructed
[INFO] [stdout]    --> src/vm/vtable.rs:233:12
[INFO] [stdout]     |
[INFO] [stdout] 233 | pub struct FieldInfo {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_field`, `get_field_index`, and `set_vtable` are never used
[INFO] [stdout]    --> src/vm/vtable.rs:244:12
[INFO] [stdout]     |
[INFO] [stdout] 242 | impl RuntimeTypeInfo {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] 243 |     /// 创建新的类型信息
[INFO] [stdout] 244 |     pub fn new(type_id: TypeId, type_name: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn add_field(&mut self, name: impl Into<String>, is_mutable: bool) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 265 |     pub fn get_field_index(&self, name: &str) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 272 |     pub fn set_vtable(&mut self, vtable: Arc<VTable>) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `YOUNG_GEN_THRESHOLD` is never used
[INFO] [stdout]   --> src/vm/gc.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const YOUNG_GEN_THRESHOLD: usize = 1024 * 1024; // 1MB
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OLD_GEN_THRESHOLD` is never used
[INFO] [stdout]   --> src/vm/gc.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const OLD_GEN_THRESHOLD: usize = 8 * 1024 * 1024; // 8MB
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PROMOTION_AGE` is never used
[INFO] [stdout]   --> src/vm/gc.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const PROMOTION_AGE: u8 = 3;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ALLOCATION_THRESHOLD` is never used
[INFO] [stdout]   --> src/vm/gc.rs:26:7
[INFO] [stdout]    |
[INFO] [stdout] 26 | const ALLOCATION_THRESHOLD: usize = 10000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GcHeader` is never constructed
[INFO] [stdout]   --> src/vm/gc.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct GcHeader {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AtomicU8` is never constructed
[INFO] [stdout]   --> src/vm/gc.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct AtomicU8(AtomicUsize);
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `load`, `store`, and `fetch_add` are never used
[INFO] [stdout]   --> src/vm/gc.rs:49:18
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl AtomicU8 {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 49 |     pub const fn new(v: u8) -> Self {
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn load(&self, order: Ordering) -> u8 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn store(&self, v: u8, order: Ordering) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn fetch_add(&self, v: u8, order: Ordering) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/vm/gc.rs:67:12
[INFO] [stdout]    |
[INFO] [stdout] 66 | impl GcHeader {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 67 |     pub fn new(size: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `total_frees`, `minor_gc_count`, `major_gc_count`, `last_gc_time_ns`, and `total_pause_time_ns` are never read
[INFO] [stdout]   --> src/vm/gc.rs:87:9
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub struct GcStats {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub total_frees: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 91 |     pub minor_gc_count: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 92 |     /// Major GC 次数
[INFO] [stdout] 93 |     pub major_gc_count: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 94 |     /// 上次 GC 耗时（纳秒）
[INFO] [stdout] 95 |     pub last_gc_time_ns: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 96 |     /// 总 GC 暂停时间（纳秒）
[INFO] [stdout] 97 |     pub total_pause_time_ns: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GcStats` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `ptr`, `tag`, `size`, `marked`, `age`, and `in_old_gen` are never read
[INFO] [stdout]    --> src/vm/gc.rs:107:5
[INFO] [stdout]     |
[INFO] [stdout] 105 | struct AllocatedObject {
[INFO] [stdout]     |        --------------- fields in this struct
[INFO] [stdout] 106 |     /// 对象指针
[INFO] [stdout] 107 |     ptr: u64,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 108 |     /// 堆标签
[INFO] [stdout] 109 |     tag: HeapTag,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 110 |     /// 对象大小
[INFO] [stdout] 111 |     size: usize,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 112 |     /// 是否已标记
[INFO] [stdout] 113 |     marked: bool,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 114 |     /// 对象年龄
[INFO] [stdout] 115 |     age: u8,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 116 |     /// 是否在老年代
[INFO] [stdout] 117 |     in_old_gen: bool,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `old_gen`, `old_size`, and `gc_running` are never read
[INFO] [stdout]    --> src/vm/gc.rs:125:5
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub struct Heap {
[INFO] [stdout]     |            ---- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 125 |     old_gen: Mutex<Vec<AllocatedObject>>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     old_size: AtomicUsize,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     gc_running: AtomicBool,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `should_gc`, `should_major_gc`, `stats`, `set_enabled`, and `is_gc_running` are never used
[INFO] [stdout]    --> src/vm/gc.rs:183:12
[INFO] [stdout]     |
[INFO] [stdout] 140 | impl Heap {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub fn should_gc(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn should_major_gc(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn stats(&self) -> GcStats {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn set_enabled(&self, enabled: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     pub fn is_gc_running(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MarkSweepGc` is never constructed
[INFO] [stdout]    --> src/vm/gc.rs:223:12
[INFO] [stdout]     |
[INFO] [stdout] 223 | pub struct MarkSweepGc {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/vm/gc.rs:230:12
[INFO] [stdout]     |
[INFO] [stdout] 228 | impl MarkSweepGc {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 229 |     /// 创建新的 GC
[INFO] [stdout] 230 |     pub fn new(heap: Arc<Heap>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     pub fn minor_gc<F>(&self, root_scanner: F) -> GcResult
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 266 |     fn do_minor_gc<F>(&self, root_scanner: F) -> GcResult
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 329 |     pub fn major_gc<F>(&self, root_scanner: F) -> GcResult
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 356 |     fn do_major_gc<F>(&self, root_scanner: F) -> GcResult
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 431 |     fn mark_value(&self, value: &Value, marked: &mut HashSet<u64>) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 449 |     fn mark_references(&self, value: &Value, marked: &mut HashSet<u64>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 514 |     fn free_object(&self, obj: &AllocatedObject) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GcResult` is never used
[INFO] [stdout]    --> src/vm/gc.rs:581:10
[INFO] [stdout]     |
[INFO] [stdout] 581 | pub enum GcResult {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gc_should_run` is never used
[INFO] [stdout]    --> src/vm/gc.rs:614:8
[INFO] [stdout]     |
[INFO] [stdout] 614 | pub fn gc_should_run() -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gc_stats` is never used
[INFO] [stdout]    --> src/vm/gc.rs:619:8
[INFO] [stdout]     |
[INFO] [stdout] 619 | pub fn gc_stats() -> GcStats {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ConcurrentMarkState` is never used
[INFO] [stdout]    --> src/vm/gc.rs:629:10
[INFO] [stdout]     |
[INFO] [stdout] 629 | pub enum ConcurrentMarkState {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConcurrentMarkGc` is never constructed
[INFO] [stdout]    --> src/vm/gc.rs:648:12
[INFO] [stdout]     |
[INFO] [stdout] 648 | pub struct ConcurrentMarkGc {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/vm/gc.rs:662:12
[INFO] [stdout]     |
[INFO] [stdout] 660 | impl ConcurrentMarkGc {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 661 |     /// 创建并发标记 GC
[INFO] [stdout] 662 |     pub fn new(heap: Arc<Heap>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 673 |     pub fn state(&self) -> ConcurrentMarkState {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 678 |     pub fn start_cycle<F>(&self, root_scanner: F) -> bool
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 715 |     pub fn incremental_mark(&self, max_objects: usize) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 749 |     pub fn remark<F>(&self, root_scanner: F) -> bool
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 797 |     pub fn concurrent_sweep(&self) -> GcResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 862 |     pub fn write_barrier(&self, ptr: u64) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 869 |     fn mark_object_references(&self, ptr: u64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `decl` and `members` are never read
[INFO] [stdout]   --> src/package/resolver.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct ResolvedImport {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 27 |     /// 原始导入声明
[INFO] [stdout] 28 |     pub decl: ImportDecl,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub members: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ResolvedImport` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_stdlib_dir`, `is_builtin`, and `get_builtin_exports` are never used
[INFO] [stdout]    --> src/package/resolver.rs:70:12
[INFO] [stdout]     |
[INFO] [stdout]  47 | impl PackageResolver {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  70 |     pub fn set_stdlib_dir(&mut self, path: PathBuf) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 315 |     pub fn is_builtin(&self, module_path: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 320 |     pub fn get_builtin_exports(&self, module_path: &str) -> Option<&Vec<String>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `StdlibFn` is never used
[INFO] [stdout]   --> src/stdlib/mod.rs:21:10
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub type StdlibFn = fn(&[Value]) -> Result<Value, String>;
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Stop` is never constructed
[INFO] [stdout]   --> src/stdlib/mod.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub enum CallbackRequest {
[INFO] [stdout]    |          --------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 41 |     Stop,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CallbackRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `stop` is never used
[INFO] [stdout]   --> src/stdlib/mod.rs:90:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | impl CallbackChannel {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub fn stop(&self) -> Result<(), String> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `exports` and `call` are never used
[INFO] [stdout]    --> src/stdlib/mod.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub trait StdlibModule: Send + Sync {
[INFO] [stdout]     |           ------------ methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 117 |     fn exports(&self) -> Vec<&'static str>;
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     fn call(&self, name: &str, args: &[Value]) -> Result<Value, String>;
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get`, `has_module`, and `call` are never used
[INFO] [stdout]    --> src/stdlib/mod.rs:196:12
[INFO] [stdout]     |
[INFO] [stdout] 173 | impl StdlibRegistry {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 196 |     pub fn get(&self, name: &str) -> Option<&dyn StdlibModule> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn has_module(&self, name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     pub fn call(&self, module: &str, func: &str, args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated functions are never used
[INFO] [stdout]    --> src/stdlib/vmtest.rs:17:8
[INFO] [stdout]     |
[INFO] [stdout]  11 | impl VmTestLib {
[INFO] [stdout]     | -------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  17 |     fn assert(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  38 |     fn assert_equal(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  60 |     fn assert_true(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     fn assert_false(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     fn assert_null(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     fn assert_not_null(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     fn fail(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_throwable_type` is never used
[INFO] [stdout]   --> src/stdlib/exception.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub fn is_throwable_type(type_name: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_exception_parent` is never used
[INFO] [stdout]   --> src/stdlib/exception.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn get_exception_parent(class_name: &str) -> Option<&'static str> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated functions are never used
[INFO] [stdout]    --> src/stdlib/exception.rs:96:8
[INFO] [stdout]     |
[INFO] [stdout]  90 | impl ExceptionLib {
[INFO] [stdout]     | ----------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  96 |     fn create_exception_instance(class_name: &str, message: String, cause: Option<Value>) -> Value {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     fn create_throwable(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     fn create_error(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     fn create_exception(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     fn runtime_exception(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     fn null_pointer_exception(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     fn index_out_of_bounds(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     fn illegal_argument(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     fn arithmetic_exception(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     fn io_exception(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     fn is_throwable(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 258 |     fn is_exception(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 295 |     fn get_exception_type(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 320 |     fn get_exception_message(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 350 |     fn get_exception_cause(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 367 |     fn is_instance_of(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `thread_pool` is never read
[INFO] [stdout]   --> src/stdlib/net/mod.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct NetTcpLib {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 15 |     thread_pool: Arc<IoThreadPool>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_socket_ptr` is never used
[INFO] [stdout]    --> src/stdlib/net/tcp.rs:419:4
[INFO] [stdout]     |
[INFO] [stdout] 419 | fn extract_socket_ptr(value: &Value) -> Result<u64, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_listener_ptr` is never used
[INFO] [stdout]    --> src/stdlib/net/tcp.rs:425:4
[INFO] [stdout]     |
[INFO] [stdout] 425 | fn extract_listener_ptr(value: &Value) -> Result<u64, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_tcp_socket_value` is never used
[INFO] [stdout]    --> src/stdlib/net/tcp.rs:432:4
[INFO] [stdout]     |
[INFO] [stdout] 432 | fn create_tcp_socket_value(ptr: u64) -> Value {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_tcp_listener_value` is never used
[INFO] [stdout]    --> src/stdlib/net/tcp.rs:437:4
[INFO] [stdout]     |
[INFO] [stdout] 437 | fn create_tcp_listener_value(ptr: u64) -> Value {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `socket_connect` is never used
[INFO] [stdout]    --> src/stdlib/net/tcp.rs:442:8
[INFO] [stdout]     |
[INFO] [stdout] 442 | pub fn socket_connect(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `socket_send` is never used
[INFO] [stdout]    --> src/stdlib/net/tcp.rs:447:8
[INFO] [stdout]     |
[INFO] [stdout] 447 | pub fn socket_send(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `socket_receive` is never used
[INFO] [stdout]    --> src/stdlib/net/tcp.rs:480:8
[INFO] [stdout]     |
[INFO] [stdout] 480 | pub fn socket_receive(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `socket_close` is never used
[INFO] [stdout]    --> src/stdlib/net/tcp.rs:516:8
[INFO] [stdout]     |
[INFO] [stdout] 516 | pub fn socket_close(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `socket_set_read_timeout` is never used
[INFO] [stdout]    --> src/stdlib/net/tcp.rs:542:8
[INFO] [stdout]     |
[INFO] [stdout] 542 | pub fn socket_set_read_timeout(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `socket_set_write_timeout` is never used
[INFO] [stdout]    --> src/stdlib/net/tcp.rs:568:8
[INFO] [stdout]     |
[INFO] [stdout] 568 | pub fn socket_set_write_timeout(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `socket_set_nodelay` is never used
[INFO] [stdout]    --> src/stdlib/net/tcp.rs:594:8
[INFO] [stdout]     |
[INFO] [stdout] 594 | pub fn socket_set_nodelay(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `socket_shutdown` is never used
[INFO] [stdout]    --> src/stdlib/net/tcp.rs:620:8
[INFO] [stdout]     |
[INFO] [stdout] 620 | pub fn socket_shutdown(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `listener_bind` is never used
[INFO] [stdout]    --> src/stdlib/net/tcp.rs:643:8
[INFO] [stdout]     |
[INFO] [stdout] 643 | pub fn listener_bind(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `listener_accept` is never used
[INFO] [stdout]    --> src/stdlib/net/tcp.rs:648:8
[INFO] [stdout]     |
[INFO] [stdout] 648 | pub fn listener_accept(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `listener_close` is never used
[INFO] [stdout]    --> src/stdlib/net/tcp.rs:677:8
[INFO] [stdout]     |
[INFO] [stdout] 677 | pub fn listener_close(args: &[Value]) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_BUFFER_SIZE` is never used
[INFO] [stdout]   --> src/stdlib/net/http.rs:35:7
[INFO] [stdout]    |
[INFO] [stdout] 35 | const DEFAULT_BUFFER_SIZE: usize = 8192;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `protocol` and `query_params` are never read
[INFO] [stdout]   --> src/stdlib/net/http.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct ParsedUrl {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 44 |     /// 协议（http/https）
[INFO] [stdout] 45 |     pub protocol: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub query_params: HashMap<String, String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ParsedUrl` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `url_encode` is never used
[INFO] [stdout]    --> src/stdlib/net/http.rs:186:4
[INFO] [stdout]     |
[INFO] [stdout] 186 | fn url_encode(s: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `status_text` is never read
[INFO] [stdout]    --> src/stdlib/net/http.rs:263:9
[INFO] [stdout]     |
[INFO] [stdout] 259 | pub struct HttpResponseData {
[INFO] [stdout]     |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 263 |     pub status_text: String,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `HttpResponseData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `host` and `port` are never read
[INFO] [stdout]    --> src/stdlib/net/http.rs:448:5
[INFO] [stdout]     |
[INFO] [stdout] 444 | pub struct HttpServerHandle {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 448 |     host: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 449 |     /// 端口号
[INFO] [stdout] 450 |     port: u16,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_running` is never used
[INFO] [stdout]    --> src/stdlib/net/http.rs:479:8
[INFO] [stdout]     |
[INFO] [stdout] 455 | impl HttpServerHandle {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 479 |     fn is_running(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `workers` and `sender` are never read
[INFO] [stdout]  --> src/stdlib/net/io_thread_pool.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct IoThreadPool {
[INFO] [stdout]   |            ------------ fields in this struct
[INFO] [stdout] 8 |     workers: Vec<Worker>,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 9 |     sender: Sender<Task>,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `execute` is never used
[INFO] [stdout]   --> src/stdlib/net/io_thread_pool.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl IoThreadPool {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn execute<F>(&self, f: F)
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `thread` is never read
[INFO] [stdout]   --> src/stdlib/net/io_thread_pool.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | struct Worker {
[INFO] [stdout]    |        ------ field in this struct
[INFO] [stdout] 32 |     thread: Option<std::thread::JoinHandle<()>>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `GoId` is never used
[INFO] [stdout]   --> src/runtime/mod.rs:34:10
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub type GoId = u64;
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `num_processors` is never used
[INFO] [stdout]   --> src/runtime/mod.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn num_processors() -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GoroutineStatus` is never used
[INFO] [stdout]   --> src/runtime/goroutine.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum GoroutineStatus {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Goroutine` is never constructed
[INFO] [stdout]   --> src/runtime/goroutine.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct Goroutine {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/runtime/goroutine.rs:70:12
[INFO] [stdout]     |
[INFO] [stdout]  68 | impl Goroutine {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  69 |     /// 创建新的协程
[INFO] [stdout]  70 |     pub fn new(id: GoId, func: Arc<Function>, args: Vec<Value>) -> Result<Self, super::stack::StackOverflow> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn new_main(id: GoId) -> Result<Self, super::stack::StackOverflow> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn new_idle(id: GoId) -> Result<Self, super::stack::StackOverflow> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn status(&self) -> GoroutineStatus {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub fn set_status(&self, status: GoroutineStatus) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub fn cas_status(&self, expected: GoroutineStatus, new: GoroutineStatus) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn is_runnable(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn is_running(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn is_waiting(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn is_dead(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub fn should_preempt(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn request_preempt(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn clear_preempt(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn inc_schedule_count(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn schedule_count(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub fn reset(&self, id: GoId, func: Arc<Function>, args: Vec<Value>) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn mark_dead(&self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 220 |     pub fn park(&self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn unpark(&self) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GoroutineHandle` is never constructed
[INFO] [stdout]    --> src/runtime/goroutine.rs:248:12
[INFO] [stdout]     |
[INFO] [stdout] 248 | pub struct GoroutineHandle {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `id`, `status`, `is_done`, and `inner` are never used
[INFO] [stdout]    --> src/runtime/goroutine.rs:254:12
[INFO] [stdout]     |
[INFO] [stdout] 252 | impl GoroutineHandle {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] 253 |     /// 创建新的句柄
[INFO] [stdout] 254 |     pub fn new(g: Arc<Goroutine>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 259 |     pub fn id(&self) -> GoId {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 264 |     pub fn status(&self) -> GoroutineStatus {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 |     pub fn is_done(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     pub fn inner(&self) -> &Arc<Goroutine> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StackOverflow` is never constructed
[INFO] [stdout]   --> src/runtime/stack.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct StackOverflow;
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Stack` is never constructed
[INFO] [stdout]   --> src/runtime/stack.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct Stack {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/runtime/stack.rs:36:15
[INFO] [stdout]     |
[INFO] [stdout]  34 | impl Stack {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout]  35 |     /// 初始栈大小：2KB
[INFO] [stdout]  36 |     pub const INITIAL_SIZE: usize = 2 * 1024;
[INFO] [stdout]     |               ^^^^^^^^^^^^
[INFO] [stdout]  37 |     /// 最大栈大小：1MB
[INFO] [stdout]  38 |     pub const MAX_SIZE: usize = 1024 * 1024;
[INFO] [stdout]     |               ^^^^^^^^
[INFO] [stdout]  39 |     /// 栈对齐：16 字节
[INFO] [stdout]  40 |     const ALIGNMENT: usize = 16;
[INFO] [stdout]     |           ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  43 |     pub fn new() -> Result<Self, StackOverflow> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn with_capacity(capacity: usize) -> Result<Self, StackOverflow> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub fn base(&self) -> *mut u8 {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub fn top(&self) -> *mut u8 {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn sp(&self) -> usize {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn set_sp(&mut self, sp: usize) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn size(&self) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn capacity(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn needs_grow(&self, additional: usize) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn grow(&mut self) -> Result<(), StackOverflow> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub fn push<T: Copy>(&mut self, value: T) -> Result<(), StackOverflow> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn pop<T: Copy>(&mut self) -> Option<T> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StackFrameInfo` is never constructed
[INFO] [stdout]    --> src/runtime/stack.rs:256:12
[INFO] [stdout]     |
[INFO] [stdout] 256 | pub struct StackFrameInfo {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StackScanContext` is never constructed
[INFO] [stdout]    --> src/runtime/stack.rs:268:12
[INFO] [stdout]     |
[INFO] [stdout] 268 | pub struct StackScanContext {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_frame`, and `scan_roots` are never used
[INFO] [stdout]    --> src/runtime/stack.rs:279:12
[INFO] [stdout]     |
[INFO] [stdout] 277 | impl StackScanContext {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 278 |     /// 创建新的扫描上下文
[INFO] [stdout] 279 |     pub fn new(stack: &Stack) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 288 |     pub fn add_frame(&mut self, info: StackFrameInfo) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 295 |     pub fn scan_roots<F>(&self, mut callback: F) 
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GcRootScanner` is never used
[INFO] [stdout]    --> src/runtime/stack.rs:315:11
[INFO] [stdout]     |
[INFO] [stdout] 315 | pub trait GcRootScanner {
[INFO] [stdout]     |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOCAL_QUEUE_SIZE` is never used
[INFO] [stdout]   --> src/runtime/queue.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const LOCAL_QUEUE_SIZE: usize = 256;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LocalQueue` is never constructed
[INFO] [stdout]   --> src/runtime/queue.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct LocalQueue {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/runtime/queue.rs:30:12
[INFO] [stdout]     |
[INFO] [stdout]  28 | impl LocalQueue {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout]  29 |     /// 创建新的本地队列
[INFO] [stdout]  30 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  49 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  57 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  63 |     pub fn is_full(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  70 |     pub fn push(&self, g: Arc<Goroutine>) -> bool {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn pop(&self) -> Option<Arc<Goroutine>> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub fn steal(&self) -> Option<Arc<Goroutine>> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn steal_batch(&self, dst: &LocalQueue) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub fn steal_batch_to_vec(&self, max: usize) -> Vec<Arc<Goroutine>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StealStats` is never constructed
[INFO] [stdout]    --> src/runtime/queue.rs:222:12
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub struct StealStats {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `record_attempt`, `success_rate`, `recent_success_rate`, and `avg_stolen_per_success` are never used
[INFO] [stdout]    --> src/runtime/queue.rs:235:18
[INFO] [stdout]     |
[INFO] [stdout] 233 | impl StealStats {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 234 |     /// 创建新的统计
[INFO] [stdout] 235 |     pub const fn new() -> Self {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub fn record_attempt(&self, success: bool, tasks_stolen: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn success_rate(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 272 |     pub fn recent_success_rate(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 277 |     pub fn avg_stolen_per_success(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AdaptiveStealStrategy` is never constructed
[INFO] [stdout]    --> src/runtime/queue.rs:297:12
[INFO] [stdout]     |
[INFO] [stdout] 297 | pub struct AdaptiveStealStrategy {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `record`, `suggested_interval`, `stats`, and `should_steal` are never used
[INFO] [stdout]    --> src/runtime/queue.rs:310:12
[INFO] [stdout]     |
[INFO] [stdout] 308 | impl AdaptiveStealStrategy {
[INFO] [stdout]     | -------------------------- associated items in this implementation
[INFO] [stdout] 309 |     /// 创建新的自适应策略
[INFO] [stdout] 310 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 320 |     pub fn record(&self, success: bool, tasks_stolen: usize) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 336 |     pub fn suggested_interval(&self) -> std::time::Duration {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 342 |     pub fn stats(&self) -> &StealStats {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 349 |     pub fn should_steal(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlobalQueue` is never constructed
[INFO] [stdout]    --> src/runtime/queue.rs:389:12
[INFO] [stdout]     |
[INFO] [stdout] 389 | pub struct GlobalQueue {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/runtime/queue.rs:396:12
[INFO] [stdout]     |
[INFO] [stdout] 394 | impl GlobalQueue {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 395 |     /// 创建新的全局队列
[INFO] [stdout] 396 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 405 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 411 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 416 |     pub fn push(&self, g: Arc<Goroutine>) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 423 |     pub fn push_batch(&self, batch: Vec<Arc<Goroutine>>) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 433 |     pub fn pop(&self) -> Option<Arc<Goroutine>> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 444 |     pub fn pop_batch(&self, max: usize) -> Vec<Arc<Goroutine>> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ProcessorStatus` is never used
[INFO] [stdout]   --> src/runtime/processor.rs:16:10
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum ProcessorStatus {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Processor` is never constructed
[INFO] [stdout]   --> src/runtime/processor.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct Processor {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/runtime/processor.rs:63:12
[INFO] [stdout]     |
[INFO] [stdout]  61 | impl Processor {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  62 |     /// 创建新的处理器
[INFO] [stdout]  63 |     pub fn new(id: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn status(&self) -> ProcessorStatus {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn set_status(&self, status: ProcessorStatus) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn is_idle(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn is_running(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn current(&self) -> Option<Arc<Goroutine>> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn set_current(&self, g: Option<Arc<Goroutine>>) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn set_next(&self, g: Arc<Goroutine>) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn take_next(&self) -> Option<Arc<Goroutine>> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn push(&self, g: Arc<Goroutine>) -> bool {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn pop(&self) -> Option<Arc<Goroutine>> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub fn queue_len(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn bind_machine(&self, machine_id: u64) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub fn unbind_machine(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn machine_id(&self) -> Option<u64> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 185 |     pub fn inc_schedule_count(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn schedule_count(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 196 |     pub fn update_schedule_time(&self, time_ns: u64) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn last_schedule_time(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     pub fn enter_syscall(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn exit_syscall(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn stop(&self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Machine` is never constructed
[INFO] [stdout]   --> src/runtime/machine.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Machine {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/runtime/machine.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout]  36 | impl Machine {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  37 |     /// 创建新的工作线程
[INFO] [stdout]  38 |     pub fn new(id: u64) -> Arc<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  53 |     pub fn set_scheduler(&self, scheduler: *mut Scheduler) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  58 |     fn scheduler(&self) -> Option<&Scheduler> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     pub fn processor(&self) -> Option<&Processor> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn bind_processor(&self, p: &Processor) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn unbind_processor(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn start(self: &Arc<Self>) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     fn run_loop(&self) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     fn find_work(&self) -> Option<Arc<Goroutine>> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     fn execute(&self, g: Arc<Goroutine>) {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn park(&self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     pub fn unpark(&self) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn is_parking(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn stop(&self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     pub fn join(&self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 237 |     pub fn goroutine_count(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `SCHEDULER` is never used
[INFO] [stdout]   --> src/runtime/scheduler.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub static SCHEDULER: OnceLock<Scheduler> = OnceLock::new();
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_scheduler` is never used
[INFO] [stdout]   --> src/runtime/scheduler.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn get_scheduler() -> &'static Scheduler {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SchedulerConfig` is never constructed
[INFO] [stdout]   --> src/runtime/scheduler.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct SchedulerConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Scheduler` is never constructed
[INFO] [stdout]   --> src/runtime/scheduler.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct Scheduler {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/runtime/scheduler.rs:82:12
[INFO] [stdout]     |
[INFO] [stdout]  80 | impl Scheduler {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  81 |     /// 创建新的调度器
[INFO] [stdout]  82 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub fn with_config(config: SchedulerConfig) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn set_chunk(&self, chunk: Arc<Chunk>) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn chunk(&self) -> Option<Arc<Chunk>> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn set_executor<F>(&self, executor: F)
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn start(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     pub fn stop(&self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn is_running(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn next_goid(&self) -> GoId {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn goroutine_count(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub fn spawn(&self, func: Arc<Function>, args: Vec<Value>) -> Option<GoId> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     pub fn schedule(&self, g: Arc<Goroutine>) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 233 |     pub fn get_from_global(&self) -> Option<Arc<Goroutine>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     pub fn get_batch_from_global(&self) -> Vec<Arc<Goroutine>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub fn steal_work(&self, thief: &Processor) -> Option<Arc<Goroutine>> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     pub fn steal_work_batch(&self, thief: &Processor, batch_size: usize) -> Vec<Arc<Goroutine>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 318 |     fn get_idle_processor(&self) -> Option<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 323 |     fn mark_processor_busy(&self, idx: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 330 |     pub fn mark_processor_idle(&self, idx: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 339 |     fn wake_machine(&self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 350 |     pub fn execute_goroutine(&self, g: &Goroutine) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 357 |     pub fn finish_goroutine(&self, _g: &Goroutine) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 362 |     pub fn yield_goroutine(&self, g: Arc<Goroutine>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 368 |     pub fn park_goroutine(&self, g: &Goroutine) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 373 |     pub fn unpark_goroutine(&self, g: Arc<Goroutine>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 379 |     pub fn should_preempt(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 |     pub fn elapsed(&self) -> std::time::Duration {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 392 |     pub fn num_processors(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 397 |     pub fn processor(&self, idx: usize) -> Option<&Arc<Processor>> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 403 |     pub fn global_queue_len(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 408 |     pub fn stats(&self) -> SchedulerStats {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SchedulerStats` is never constructed
[INFO] [stdout]    --> src/runtime/scheduler.rs:436:12
[INFO] [stdout]     |
[INFO] [stdout] 436 | pub struct SchedulerStats {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `CHANNEL_ID` is never used
[INFO] [stdout]   --> src/runtime/channel.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | static CHANNEL_ID: AtomicU64 = AtomicU64::new(1);
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ChannelStatus` is never used
[INFO] [stdout]   --> src/runtime/channel.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum ChannelStatus {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Waiter` is never constructed
[INFO] [stdout]   --> src/runtime/channel.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | struct Waiter {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Channel` is never constructed
[INFO] [stdout]   --> src/runtime/channel.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Channel {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/runtime/channel.rs:56:12
[INFO] [stdout]     |
[INFO] [stdout]  54 | impl Channel {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  55 |     /// 创建无缓冲 Channel
[INFO] [stdout]  56 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub fn with_capacity(capacity: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  76 |     pub fn id(&self) -> u64 {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     pub fn capacity(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  98 |     pub fn is_closed(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn send(&self, value: Value) -> Result<(), Value> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn try_send(&self, value: Value) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     fn try_send_internal(&self, value: Value) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub fn receive(&self) -> Option<Value> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn try_receive(&self) -> Option<Value> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn close(&self) -> bool {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub fn send_waiters_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 237 |     pub fn recv_waiters_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TypedChannel` is never constructed
[INFO] [stdout]    --> src/runtime/channel.rs:263:12
[INFO] [stdout]     |
[INFO] [stdout] 263 | pub struct TypedChannel<T> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/runtime/channel.rs:270:12
[INFO] [stdout]     |
[INFO] [stdout] 268 | impl<T: Into<Value> + TryFrom<Value>> TypedChannel<T> {
[INFO] [stdout]     | ----------------------------------------------------- associated items in this implementation
[INFO] [stdout] 269 |     /// 创建无缓冲 Channel
[INFO] [stdout] 270 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 278 |     pub fn with_capacity(capacity: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 286 |     pub fn send(&self, value: T) -> Result<(), T> 
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 297 |     pub fn try_send(&self, value: T) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 302 |     pub fn receive(&self) -> Option<T> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 307 |     pub fn try_receive(&self) -> Option<T> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 312 |     pub fn close(&self) -> bool {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 317 |     pub fn is_closed(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SelectCase` is never used
[INFO] [stdout]    --> src/runtime/channel.rs:334:10
[INFO] [stdout]     |
[INFO] [stdout] 334 | pub enum SelectCase {
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SelectResult` is never used
[INFO] [stdout]    --> src/runtime/channel.rs:350:10
[INFO] [stdout]     |
[INFO] [stdout] 350 | pub enum SelectResult {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `select` is never used
[INFO] [stdout]    --> src/runtime/channel.rs:368:8
[INFO] [stdout]     |
[INFO] [stdout] 368 | pub fn select(cases: &[SelectCase]) -> SelectResult {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `try_select` is never used
[INFO] [stdout]    --> src/runtime/channel.rs:411:8
[INFO] [stdout]     |
[INFO] [stdout] 411 | pub fn try_select(cases: &[SelectCase]) -> Option<SelectResult> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `select_timeout` is never used
[INFO] [stdout]    --> src/runtime/channel.rs:418:8
[INFO] [stdout]     |
[INFO] [stdout] 418 | pub fn select_timeout(cases: &[SelectCase], timeout: std::time::Duration) -> Option<SelectResult> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `try_select_once` is never used
[INFO] [stdout]    --> src/runtime/channel.rs:456:4
[INFO] [stdout]     |
[INFO] [stdout] 456 | fn try_select_once(cases: &[SelectCase]) -> Option<SelectResult> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CallFrameSnapshot` is never constructed
[INFO] [stdout]  --> src/runtime/context.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct CallFrameSnapshot {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VMState` is never constructed
[INFO] [stdout]   --> src/runtime/context.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct VMState {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `reset` are never used
[INFO] [stdout]   --> src/runtime/context.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl VMState {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 32 |     /// 创建空的 VM 状态
[INFO] [stdout] 33 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn reset(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Context` is never constructed
[INFO] [stdout]   --> src/runtime/context.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub struct Context {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `WaitReason` is never used
[INFO] [stdout]   --> src/runtime/context.rs:74:10
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub enum WaitReason {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/runtime/context.rs:93:12
[INFO] [stdout]     |
[INFO] [stdout]  91 | impl Context {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  92 |     /// 创建新的执行上下文
[INFO] [stdout]  93 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn with_ip(ip: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn mark_started(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn mark_finished(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn is_waiting(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn wait_for(&mut self, reason: WaitReason) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn clear_wait(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ExecuteResult` is never used
[INFO] [stdout]   --> src/runtime/coroutine_vm.rs:20:10
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub enum ExecuteResult {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CoroutineVM` is never constructed
[INFO] [stdout]   --> src/runtime/coroutine_vm.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct CoroutineVM {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `set_time_slice`, `init_from_goroutine`, `save_to_goroutine`, `execute`, and `execute_to_completion` are never used
[INFO] [stdout]    --> src/runtime/coroutine_vm.rs:45:12
[INFO] [stdout]     |
[INFO] [stdout]  43 | impl CoroutineVM {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout]  44 |     /// 创建新的协程 VM
[INFO] [stdout]  45 |     pub fn new(chunk: Arc<Chunk>, locale: Locale) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  54 |     pub fn set_time_slice(&mut self, instructions: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub fn init_from_goroutine(&mut self, g: &Goroutine) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |     pub fn save_to_goroutine(&self, g: &Goroutine) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn execute(&mut self, g: &Goroutine) -> ExecuteResult {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn execute_to_completion(&mut self, g: &Goroutine) -> ExecuteResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `VMCoroutineExt` is never used
[INFO] [stdout]    --> src/runtime/coroutine_vm.rs:198:11
[INFO] [stdout]     |
[INFO] [stdout] 198 | pub trait VMCoroutineExt {
[INFO] [stdout]     |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PreemptConfig` is never constructed
[INFO] [stdout]   --> src/runtime/preempt.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct PreemptConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PreemptState` is never constructed
[INFO] [stdout]   --> src/runtime/preempt.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct PreemptState {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `configure`, `is_enabled`, `time_slice`, and `safepoint_interval` are never used
[INFO] [stdout]   --> src/runtime/preempt.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 39 | impl PreemptState {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 40 |     /// 创建新的抢占状态
[INFO] [stdout] 41 |     pub const fn new() -> Self {
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn configure(&self, config: &PreemptConfig) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn is_enabled(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn time_slice(&self) -> Duration {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn safepoint_interval(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PREEMPT_STATE` is never used
[INFO] [stdout]   --> src/runtime/preempt.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub static PREEMPT_STATE: PreemptState = PreemptState::new();
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PreemptTracker` is never constructed
[INFO] [stdout]   --> src/runtime/preempt.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub struct PreemptTracker {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `reset`, `check`, `force_preempt`, `elapsed`, and `instruction_count` are never used
[INFO] [stdout]    --> src/runtime/preempt.rs:92:12
[INFO] [stdout]     |
[INFO] [stdout]  90 | impl PreemptTracker {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout]  91 |     /// 创建新的追踪器
[INFO] [stdout]  92 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn check(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn force_preempt(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn elapsed(&self) -> Duration {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     pub fn instruction_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PreemptGuard` is never constructed
[INFO] [stdout]    --> src/runtime/preempt.rs:219:12
[INFO] [stdout]     |
[INFO] [stdout] 219 | pub struct PreemptGuard {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `disable` is never used
[INFO] [stdout]    --> src/runtime/preempt.rs:225:12
[INFO] [stdout]     |
[INFO] [stdout] 223 | impl PreemptGuard {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] 224 |     /// 禁用抢占并创建守卫
[INFO] [stdout] 225 |     pub fn disable() -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init` is never used
[INFO] [stdout]    --> src/runtime/preempt.rs:205:12
[INFO] [stdout]     |
[INFO] [stdout] 205 |     pub fn init() {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `request_preempt` is never used
[INFO] [stdout]    --> src/runtime/preempt.rs:211:12
[INFO] [stdout]     |
[INFO] [stdout] 211 |     pub fn request_preempt(_thread_id: u64) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RuntimeConfig` is never constructed
[INFO] [stdout]   --> src/runtime/runtime.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct RuntimeConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Runtime` is never constructed
[INFO] [stdout]   --> src/runtime/runtime.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct Runtime {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/runtime/runtime.rs:65:12
[INFO] [stdout]     |
[INFO] [stdout]  63 | impl Runtime {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  64 |     /// 创建新的运行时
[INFO] [stdout]  65 |     pub fn new(chunk: Arc<Chunk>, config: RuntimeConfig) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |     pub fn with_chunk(chunk: Arc<Chunk>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     pub fn run(&self) -> Result<(), RuntimeError> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn spawn(&self, func: Arc<Function>, args: Vec<Value>) -> Option<u64> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn create_channel(&self, capacity: usize) -> Arc<Channel> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn is_running(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub fn stats(&self) -> super::scheduler::SchedulerStats {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RuntimeHandle` is never constructed
[INFO] [stdout]    --> src/runtime/runtime.rs:161:12
[INFO] [stdout]     |
[INFO] [stdout] 161 | pub struct RuntimeHandle {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `go`, and `yield_now` are never used
[INFO] [stdout]    --> src/runtime/runtime.rs:169:12
[INFO] [stdout]     |
[INFO] [stdout] 167 | impl RuntimeHandle {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 168 |     /// 创建新的运行时句柄
[INFO] [stdout] 169 |     pub fn new(chunk: Arc<Chunk>, locale: Locale) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn go(&self, func: Arc<Function>, args: Vec<Value>) -> Option<u64> {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub fn yield_now(&self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_runtime_handle` is never used
[INFO] [stdout]    --> src/runtime/runtime.rs:194:8
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub fn set_runtime_handle(handle: RuntimeHandle) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `with_runtime_handle` is never used
[INFO] [stdout]    --> src/runtime/runtime.rs:201:8
[INFO] [stdout]     |
[INFO] [stdout] 201 | pub fn with_runtime_handle<F, R>(f: F) -> Option<R>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `initialized` are never read
[INFO] [stdout]   --> src/typechecker/environment.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct VariableInfo {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 11 |     /// 变量名
[INFO] [stdout] 12 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub initialized: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VariableInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `type_params`, `is_method`, and `owner_type` are never read
[INFO] [stdout]   --> src/typechecker/environment.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct FunctionInfo {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 24 |     /// 函数名
[INFO] [stdout] 25 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 26 |     /// 泛型参数
[INFO] [stdout] 27 |     pub type_params: Vec<GenericParam>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub is_method: bool,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 38 |     /// 所属类型（如果是方法）
[INFO] [stdout] 39 |     pub owner_type: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FunctionInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `type_params`, `interfaces`, `traits`, `static_fields`, and `static_methods` are never read
[INFO] [stdout]   --> src/typechecker/environment.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct ClassInfo {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 45 |     /// 类名
[INFO] [stdout] 46 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 47 |     /// 泛型参数
[INFO] [stdout] 48 |     pub type_params: Vec<GenericParam>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub interfaces: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 53 |     /// 使用的 Trait
[INFO] [stdout] 54 |     pub traits: Vec<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub static_fields: HashMap<String, FieldInfo>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 61 |     /// 静态方法
[INFO] [stdout] 62 |     pub static_methods: HashMap<String, FunctionInfo>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ClassInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `type_params`, and `interfaces` are never read
[INFO] [stdout]   --> src/typechecker/environment.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub struct StructInfo {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 70 |     /// 结构体名
[INFO] [stdout] 71 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 72 |     /// 泛型参数
[INFO] [stdout] 73 |     pub type_params: Vec<GenericParam>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 74 |     /// 实现的接口
[INFO] [stdout] 75 |     pub interfaces: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `StructInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `is_mutable`, and `visibility` are never read
[INFO] [stdout]   --> src/typechecker/environment.rs:86:9
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub struct FieldInfo {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 85 |     /// 字段名
[INFO] [stdout] 86 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub is_mutable: bool,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 91 |     /// 可见性
[INFO] [stdout] 92 |     pub visibility: Visibility,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FieldInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `type_params`, and `super_traits` are never read
[INFO] [stdout]    --> src/typechecker/environment.rs:108:9
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub struct TraitInfo {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 107 |     /// Trait 名
[INFO] [stdout] 108 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 109 |     /// 泛型参数
[INFO] [stdout] 110 |     pub type_params: Vec<GenericParam>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 111 |     /// 父 Trait
[INFO] [stdout] 112 |     pub super_traits: Vec<TypeBound>,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TraitInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `type_params`, and `super_interfaces` are never read
[INFO] [stdout]    --> src/typechecker/environment.rs:123:9
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub struct InterfaceInfo {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] 122 |     /// 接口名
[INFO] [stdout] 123 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 124 |     /// 泛型参数
[INFO] [stdout] 125 |     pub type_params: Vec<GenericParam>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 126 |     /// 父接口
[INFO] [stdout] 127 |     pub super_interfaces: Vec<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `InterfaceInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `variants`, and `methods` are never read
[INFO] [stdout]    --> src/typechecker/environment.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub struct EnumInfo {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] 135 |     /// 枚举名
[INFO] [stdout] 136 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 137 |     /// 变体
[INFO] [stdout] 138 |     pub variants: HashMap<String, EnumVariantInfo>,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 139 |     /// 方法
[INFO] [stdout] 140 |     pub methods: HashMap<String, FunctionInfo>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `EnumInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `value_type`, and `fields` are never read
[INFO] [stdout]    --> src/typechecker/environment.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub struct EnumVariantInfo {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] 146 |     /// 变体名
[INFO] [stdout] 147 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 148 |     /// 关联值类型（如果有）
[INFO] [stdout] 149 |     pub value_type: Option<Type>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 150 |     /// 关联数据字段
[INFO] [stdout] 151 |     pub fields: Vec<(String, Type)>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `EnumVariantInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/typechecker/environment.rs:161:10
[INFO] [stdout]     |
[INFO] [stdout] 161 |     Enum(EnumInfo),
[INFO] [stdout]     |     ---- ^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TypeInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 161 -     Enum(EnumInfo),
[INFO] [stdout] 161 +     Enum(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `actual_type` are never read
[INFO] [stdout]    --> src/typechecker/environment.rs:164:9
[INFO] [stdout]     |
[INFO] [stdout] 163 |     Alias {
[INFO] [stdout]     |     ----- fields in this variant
[INFO] [stdout] 164 |         name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 165 |         actual_type: Type,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TypeInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_type_param` is never used
[INFO] [stdout]    --> src/typechecker/environment.rs:218:12
[INFO] [stdout]     |
[INFO] [stdout] 182 | impl TypeScope {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn get_type_param(&self, name: &str) -> Option<&GenericParam> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `trait_impls` is never read
[INFO] [stdout]    --> src/typechecker/environment.rs:235:5
[INFO] [stdout]     |
[INFO] [stdout] 225 | pub struct TypeEnvironment {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 235 |     trait_impls: Vec<TraitImpl>,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TypeEnvironment` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `lookup_type_param`, `register_trait_impl`, `find_trait_impl`, `type_matches`, `set_this_type`, and `resolve_type` are never used
[INFO] [stdout]    --> src/typechecker/environment.rs:303:12
[INFO] [stdout]     |
[INFO] [stdout] 242 | impl TypeEnvironment {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 303 |     pub fn lookup_type_param(&self, name: &str) -> Option<&GenericParam> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 352 |     pub fn register_trait_impl(&mut self, impl_: TraitImpl) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 357 |     pub fn find_trait_impl(&self, ty: &Type, trait_name: &str) -> Option<&TraitImpl> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 364 |     fn type_matches(&self, pattern: &Type, actual: &Type) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 370 |     pub fn set_this_type(&mut self, ty: Option<Type>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 390 |     pub fn resolve_type(&self, name: &str) -> Option<Type> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `UnifyResult` is never used
[INFO] [stdout]   --> src/typechecker/unify.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub type UnifyResult = Result<Substitution, TypeError>;
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Unifier` is never constructed
[INFO] [stdout]   --> src/typechecker/unify.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Unifier {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/typechecker/unify.rs:21:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl Unifier {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  20 |     /// 创建新的统一器
[INFO] [stdout]  21 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  28 |     pub fn with_substitution(substitution: Substitution) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  33 |     pub fn unify(&mut self, t1: &Type, t2: &Type, span: Span) -> UnifyResult {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  47 |     fn unify_internal(&mut self, t1: &Type, t2: &Type, span: Span) -> UnifyResult {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     fn unify_var(&mut self, var: &TypeVar, ty: &Type, span: Span) -> UnifyResult {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     fn occurs_in(&self, var: &TypeVar, ty: &Type) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 271 |     pub fn apply(&self, ty: &Type) -> Type {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn get_substitution(&self) -> &Substitution {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 281 |     pub fn into_substitution(self) -> Substitution {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unify` is never used
[INFO] [stdout]    --> src/typechecker/unify.rs:293:8
[INFO] [stdout]     |
[INFO] [stdout] 293 | pub fn unify(t1: &Type, t2: &Type, span: Span) -> UnifyResult {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unify_with_subst` is never used
[INFO] [stdout]    --> src/typechecker/unify.rs:299:8
[INFO] [stdout]     |
[INFO] [stdout] 299 | pub fn unify_with_subst(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Equal`, `Subtype`, `TraitBound`, and `Instantiate` are never constructed
[INFO] [stdout]   --> src/typechecker/constraint.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum ConstraintKind {
[INFO] [stdout]    |          -------------- variants in this enum
[INFO] [stdout] 13 |     /// 类型相等约束 T1 = T2
[INFO] [stdout] 14 |     Equal(Type, Type),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 15 |     /// 子类型约束 T1 <: T2
[INFO] [stdout] 16 |     Subtype {
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     TraitBound {
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     Instantiate {
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ConstraintKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `reason` is never read
[INFO] [stdout]   --> src/typechecker/constraint.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct Constraint {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub reason: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Constraint` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new`, `equal`, `subtype`, and `trait_bound` are never used
[INFO] [stdout]   --> src/typechecker/constraint.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | impl Constraint {
[INFO] [stdout]    | --------------- associated functions in this implementation
[INFO] [stdout] 44 |     /// 创建新的约束
[INFO] [stdout] 45 |     pub fn new(kind: ConstraintKind, span: Span, reason: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn equal(t1: Type, t2: Type, span: Span, reason: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn subtype(sub: Type, super_: Type, span: Span, reason: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn trait_bound(ty: Type, bound: TypeBound, span: Span, reason: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_constraint`, `add_constraints`, `get_substitution`, and `get_var_constraints` are never used
[INFO] [stdout]    --> src/typechecker/constraint.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout]  89 | impl ConstraintSolver {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn add_constraint(&mut self, constraint: Constraint) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn add_constraints(&mut self, constraints: Vec<Constraint>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 401 |     pub fn get_substitution(&self) -> &Substitution {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 406 |     pub fn get_var_constraints(&self, var_id: u64) -> Option<&Vec<TypeBound>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/typechecker/error.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum TypeErrorKind {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 18 |     UnknownType(String),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     UndefinedFunction(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     ConstraintNotSatisfied {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     CyclicTypeDependency(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 69 |     /// 不可空类型赋值 null
[INFO] [stdout] 70 |     NullNotAllowed(Type),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 71 |     /// 无效的类型转换
[INFO] [stdout] 72 |     InvalidCast {
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     UnreachableCode,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TypeErrorKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `notes` is never read
[INFO] [stdout]    --> src/typechecker/error.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub struct TypeError {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub notes: Vec<String>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TypeError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `with_note`, `undefined_function`, and `constraint_not_satisfied` are never used
[INFO] [stdout]    --> src/typechecker/error.rs:142:12
[INFO] [stdout]     |
[INFO] [stdout] 131 | impl TypeError {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn with_note(mut self, note: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn undefined_function(name: impl Into<String>, span: Span) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub fn constraint_not_satisfied(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_context` is never used
[INFO] [stdout]    --> src/typechecker/checker.rs:351:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl TypeChecker {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 351 |     pub fn set_context(&mut self, context: CompileContext) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `from_types` are never used
[INFO] [stdout]   --> src/typechecker/monomorphize.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl MonoKey {
[INFO] [stdout]    | ------------ associated functions in this implementation
[INFO] [stdout] 21 |     /// 创建新的单态化键
[INFO] [stdout] 22 |     pub fn new(base_name: impl Into<String>, type_args: Vec<Type>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn from_types(base_name: impl Into<String>, type_args: &[Type]) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mangle_type` is never used
[INFO] [stdout]   --> src/typechecker/monomorphize.rs:54:4
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn mangle_type(ty: &Type) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/typechecker/monomorphize.rs:99:9
[INFO] [stdout]     |
[INFO] [stdout]  97 | pub struct MonomorphizedClass {
[INFO] [stdout]     |            ------------------ fields in this struct
[INFO] [stdout]  98 |     /// 单态化后的名称
[INFO] [stdout]  99 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 100 |     /// 原始名称
[INFO] [stdout] 101 |     pub original_name: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 102 |     /// 类型替换表
[INFO] [stdout] 103 |     pub substitution: Substitution,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 104 |     /// 字段（类型已替换）
[INFO] [stdout] 105 |     pub fields: Vec<MonomorphizedField>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 106 |     /// 方法（类型已替换）
[INFO] [stdout] 107 |     pub methods: Vec<MonomorphizedMethod>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 108 |     /// 父类（如果有）
[INFO] [stdout] 109 |     pub parent: Option<String>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 110 |     /// 是否是抽象类
[INFO] [stdout] 111 |     pub is_abstract: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MonomorphizedClass` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `original_name`, `substitution`, `fields`, and `methods` are never read
[INFO] [stdout]    --> src/typechecker/monomorphize.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub struct MonomorphizedStruct {
[INFO] [stdout]     |            ------------------- fields in this struct
[INFO] [stdout] 117 |     /// 单态化后的名称
[INFO] [stdout] 118 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 119 |     /// 原始名称
[INFO] [stdout] 120 |     pub original_name: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 121 |     /// 类型替换表
[INFO] [stdout] 122 |     pub substitution: Substitution,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 123 |     /// 字段（类型已替换）
[INFO] [stdout] 124 |     pub fields: Vec<MonomorphizedField>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 125 |     /// 方法（类型已替换）
[INFO] [stdout] 126 |     pub methods: Vec<MonomorphizedMethod>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MonomorphizedStruct` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `ty`, and `is_mutable` are never read
[INFO] [stdout]    --> src/typechecker/monomorphize.rs:132:9
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub struct MonomorphizedField {
[INFO] [stdout]     |            ------------------ fields in this struct
[INFO] [stdout] 132 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 133 |     pub ty: Type,
[INFO] [stdout]     |         ^^
[INFO] [stdout] 134 |     pub is_mutable: bool,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MonomorphizedField` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `param_types`, `param_names`, `return_type`, and `is_static` are never read
[INFO] [stdout]    --> src/typechecker/monomorphize.rs:140:9
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub struct MonomorphizedMethod {
[INFO] [stdout]     |            ------------------- fields in this struct
[INFO] [stdout] 140 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 141 |     pub param_types: Vec<Type>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 142 |     pub param_names: Vec<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 143 |     pub return_type: Type,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 144 |     pub is_static: bool,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MonomorphizedMethod` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `original_name`, `substitution`, `param_types`, `param_names`, and `return_type` are never read
[INFO] [stdout]    --> src/typechecker/monomorphize.rs:151:9
[INFO] [stdout]     |
[INFO] [stdout] 149 | pub struct MonomorphizedFunction {
[INFO] [stdout]     |            --------------------- fields in this struct
[INFO] [stdout] 150 |     /// 单态化后的名称
[INFO] [stdout] 151 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 152 |     /// 原始名称
[INFO] [stdout] 153 |     pub original_name: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 154 |     /// 类型替换表
[INFO] [stdout] 155 |     pub substitution: Substitution,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 156 |     /// 参数类型
[INFO] [stdout] 157 |     pub param_types: Vec<Type>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 158 |     /// 参数名
[INFO] [stdout] 159 |     pub param_names: Vec<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 160 |     /// 返回类型
[INFO] [stdout] 161 |     pub return_type: Type,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MonomorphizedFunction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/typechecker/monomorphize.rs:192:5
[INFO] [stdout]     |
[INFO] [stdout] 191 | struct ClassDefInfo {
[INFO] [stdout]     |        ------------ field in this struct
[INFO] [stdout] 192 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ClassDefInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/typechecker/monomorphize.rs:203:5
[INFO] [stdout]     |
[INFO] [stdout] 202 | struct StructDefInfo {
[INFO] [stdout]     |        ------------- field in this struct
[INFO] [stdout] 203 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StructDefInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/typechecker/monomorphize.rs:212:5
[INFO] [stdout]     |
[INFO] [stdout] 211 | struct FunctionDefInfo {
[INFO] [stdout]     |        --------------- field in this struct
[INFO] [stdout] 212 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FunctionDefInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/typechecker/monomorphize.rs:317:12
[INFO] [stdout]     |
[INFO] [stdout] 229 | impl Monomorphizer {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 317 |     pub fn request_class(&mut self, name: &str, type_args: Vec<Type>) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 335 |     pub fn request_struct(&mut self, name: &str, type_args: Vec<Type>) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 351 |     pub fn request_function(&mut self, name: &str, type_args: Vec<Type>) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 502 |     pub fn get_monomorphized_class(&self, key: &MonoKey) -> Option<&MonomorphizedClass> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 507 |     pub fn get_monomorphized_struct(&self, key: &MonoKey) -> Option<&MonomorphizedStruct> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 512 |     pub fn get_monomorphized_function(&self, key: &MonoKey) -> Option<&MonomorphizedFunction> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 517 |     pub fn all_classes(&self) -> impl Iterator<Item = &MonomorphizedClass> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 522 |     pub fn all_structs(&self) -> impl Iterator<Item = &MonomorphizedStruct> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 527 |     pub fn all_functions(&self) -> impl Iterator<Item = &MonomorphizedFunction> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.36s
[INFO] running `Command { std: "docker" "inspect" "9def23565bcc070a577f164a470d39e78323bdc8021933ec2d9396dc48c88fff", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9def23565bcc070a577f164a470d39e78323bdc8021933ec2d9396dc48c88fff", kill_on_drop: false }`
[INFO] [stdout] 9def23565bcc070a577f164a470d39e78323bdc8021933ec2d9396dc48c88fff
